diff options
Diffstat (limited to 'package/broadcom-wl/compat-ldso/patches')
| -rw-r--r-- | package/broadcom-wl/compat-ldso/patches/100-start_main.patch | 66 | 
1 files changed, 66 insertions, 0 deletions
diff --git a/package/broadcom-wl/compat-ldso/patches/100-start_main.patch b/package/broadcom-wl/compat-ldso/patches/100-start_main.patch new file mode 100644 index 000000000..5f4c0d5c7 --- /dev/null +++ b/package/broadcom-wl/compat-ldso/patches/100-start_main.patch @@ -0,0 +1,66 @@ +Index: uClibc-0.9.28.2/ldso/ldso/dl-hash.c +=================================================================== +--- uClibc-0.9.28.2.orig/ldso/ldso/dl-hash.c	2007-11-09 03:35:13.193591913 +0100 ++++ uClibc-0.9.28.2/ldso/ldso/dl-hash.c	2007-11-09 03:52:41.713343652 +0100 +@@ -124,6 +124,15 @@ + 	return tpnt; + } +  ++void (*__uClibc_main)(void *main, int argc, char **argv, void (*app_init)(void), void (*app_fini)(void), void *, void *) = NULL; ++int (*main)(int argc, char **argv, char **envp) = NULL; ++void ++__uClibc_start_main(int argc, char **argv, char **envp, ++            void (*app_fini)(void), void (*app_init)(void)) ++{ ++    __uClibc_main(main, argc, argv, app_init, app_fini, NULL, NULL); ++} ++ +  + /* +  * This function resolves externals, and this is either called when we process +@@ -139,6 +148,12 @@ + 	const ElfW(Sym) *sym; + 	char *weak_result = NULL; +  ++	if (_dl_strcmp(name, "__uClibc_start_main") == 0) { ++		main = _dl_find_hash("main", rpnt, mytpnt, type_class); ++		__uClibc_main = _dl_find_hash("__uClibc_main", rpnt, mytpnt, type_class); ++		return (char *) &__uClibc_start_main; ++	} ++ + 	elf_hash_number = _dl_elf_hash(name); +  + 	for (; rpnt; rpnt = rpnt->next) { +Index: uClibc-0.9.28.2/Makefile +=================================================================== +--- uClibc-0.9.28.2.orig/Makefile	2007-11-09 03:54:20.814991133 +0100 ++++ uClibc-0.9.28.2/Makefile	2007-11-09 03:58:56.346692786 +0100 +@@ -28,10 +28,7 @@ + TOPDIR=./ + include Rules.mak +  +-DIRS = ldso libc libcrypt libresolv libnsl libutil libm libpthread librt +-ifeq ($(strip $(UCLIBC_HAS_GETTEXT_AWARENESS)),y) +-	DIRS += libintl +-endif ++DIRS = ldso +  + ifeq ($(strip $(HAVE_DOT_CONFIG)),y) +  +@@ -47,16 +44,6 @@ + 	$(SECHO) + 	@$(MAKE) -C libc shared + 	@$(MAKE) -C ldso shared +-	@$(MAKE) -C libcrypt shared +-	@$(MAKE) -C libresolv shared +-	@$(MAKE) -C libnsl shared +-	@$(MAKE) -C libutil shared +-	@$(MAKE) -C libm shared +-	@$(MAKE) -C libpthread shared +-	@$(MAKE) -C librt shared +-ifeq ($(strip $(UCLIBC_HAS_GETTEXT_AWARENESS)),y) +-	@$(MAKE) -C libintl shared +-endif + else + 	$(SECHO) + 	$(SECHO) Not building shared libraries ...  | 
