5f4c0d5c701392dc07e61d6a07f72ee0ff7df416
[openwrt/staging/yousong.git] / package / broadcom-wl / compat-ldso / patches / 100-start_main.patch
1 Index: uClibc-0.9.28.2/ldso/ldso/dl-hash.c
2 ===================================================================
3 --- uClibc-0.9.28.2.orig/ldso/ldso/dl-hash.c 2007-11-09 03:35:13.193591913 +0100
4 +++ uClibc-0.9.28.2/ldso/ldso/dl-hash.c 2007-11-09 03:52:41.713343652 +0100
5 @@ -124,6 +124,15 @@
6 return tpnt;
7 }
8
9 +void (*__uClibc_main)(void *main, int argc, char **argv, void (*app_init)(void), void (*app_fini)(void), void *, void *) = NULL;
10 +int (*main)(int argc, char **argv, char **envp) = NULL;
11 +void
12 +__uClibc_start_main(int argc, char **argv, char **envp,
13 + void (*app_fini)(void), void (*app_init)(void))
14 +{
15 + __uClibc_main(main, argc, argv, app_init, app_fini, NULL, NULL);
16 +}
17 +
18
19 /*
20 * This function resolves externals, and this is either called when we process
21 @@ -139,6 +148,12 @@
22 const ElfW(Sym) *sym;
23 char *weak_result = NULL;
24
25 + if (_dl_strcmp(name, "__uClibc_start_main") == 0) {
26 + main = _dl_find_hash("main", rpnt, mytpnt, type_class);
27 + __uClibc_main = _dl_find_hash("__uClibc_main", rpnt, mytpnt, type_class);
28 + return (char *) &__uClibc_start_main;
29 + }
30 +
31 elf_hash_number = _dl_elf_hash(name);
32
33 for (; rpnt; rpnt = rpnt->next) {
34 Index: uClibc-0.9.28.2/Makefile
35 ===================================================================
36 --- uClibc-0.9.28.2.orig/Makefile 2007-11-09 03:54:20.814991133 +0100
37 +++ uClibc-0.9.28.2/Makefile 2007-11-09 03:58:56.346692786 +0100
38 @@ -28,10 +28,7 @@
39 TOPDIR=./
40 include Rules.mak
41
42 -DIRS = ldso libc libcrypt libresolv libnsl libutil libm libpthread librt
43 -ifeq ($(strip $(UCLIBC_HAS_GETTEXT_AWARENESS)),y)
44 - DIRS += libintl
45 -endif
46 +DIRS = ldso
47
48 ifeq ($(strip $(HAVE_DOT_CONFIG)),y)
49
50 @@ -47,16 +44,6 @@
51 $(SECHO)
52 @$(MAKE) -C libc shared
53 @$(MAKE) -C ldso shared
54 - @$(MAKE) -C libcrypt shared
55 - @$(MAKE) -C libresolv shared
56 - @$(MAKE) -C libnsl shared
57 - @$(MAKE) -C libutil shared
58 - @$(MAKE) -C libm shared
59 - @$(MAKE) -C libpthread shared
60 - @$(MAKE) -C librt shared
61 -ifeq ($(strip $(UCLIBC_HAS_GETTEXT_AWARENESS)),y)
62 - @$(MAKE) -C libintl shared
63 -endif
64 else
65 $(SECHO)
66 $(SECHO) Not building shared libraries ...