aboutsummaryrefslogtreecommitdiff
path: root/applets
diff options
context:
space:
mode:
authorvda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277>2007-05-31 22:16:38 +0000
committervda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277>2007-05-31 22:16:38 +0000
commit3ea433409694393b67dd9dee3b184268ab75ac56 (patch)
treef2d3fe127fb6c3c1d3b919631de6e6ed7cbc1791 /applets
parent2c31c731f0026b9f92dc0e07542fb8e38cad7dd2 (diff)
downloadbusybox-w32-3ea433409694393b67dd9dee3b184268ab75ac56.tar.gz
busybox-w32-3ea433409694393b67dd9dee3b184268ab75ac56.tar.bz2
busybox-w32-3ea433409694393b67dd9dee3b184268ab75ac56.zip
use "glibc errno" trick not only for ash, but for entire busybox
(add/remove: 1/1 grow/shrink: 37/37 up/down: 139/-228) Total: -89 bytes git-svn-id: svn://busybox.net/trunk/busybox@18716 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'applets')
-rw-r--r--applets/applets.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/applets/applets.c b/applets/applets.c
index e905ebec4..bd3704394 100644
--- a/applets/applets.c
+++ b/applets/applets.c
@@ -641,10 +641,19 @@ void run_applet_and_exit(const char *name, char **argv)
641} 641}
642 642
643 643
644#ifdef __GLIBC__
645/* Make it reside in R/W memory: */
646int *const bb_errno __attribute__ ((section (".data")));
647#endif
648
644int main(int argc, char **argv) 649int main(int argc, char **argv)
645{ 650{
646 const char *s; 651 const char *s;
647 652
653#ifdef __GLIBC__
654 (*(int **)&bb_errno) = __errno_location();
655#endif
656
648#if !BB_MMU 657#if !BB_MMU
649 /* NOMMU re-exec trick sets high-order bit in first byte of name */ 658 /* NOMMU re-exec trick sets high-order bit in first byte of name */
650 if (argv[0][0] & 0x80) { 659 if (argv[0][0] & 0x80) {