浏览代码

Remove hardcoded ld-uClibc.so.0 name in ldso.

Joakim Tjernlund 19 年之前
父节点
当前提交
066d0837ff
共有 4 个文件被更改,包括 4 次插入8 次删除
  1. 1 3
      ldso/Makefile
  2. 0 1
      ldso/include/ldso.h
  3. 1 1
      ldso/ldso/Makefile
  4. 2 3
      ldso/ldso/ldso.c

+ 1 - 3
ldso/Makefile

@@ -44,10 +44,8 @@ $(LN_HEADERS):
 $(LN_ARCH_HEADERS):
 	$(LN) -fs ../ldso/$(TARGET_ARCH)/$(patsubst include/%,%,$@) $@
 include/dl-progname.h:
-	echo 'const char *_dl_progname="$(UCLIBC_LDSO)";' \
-		> include/dl-progname.h
 	echo '#include "$(TARGET_ARCH)/elfinterp.c"' \
-		>> include/dl-progname.h
+		> include/dl-progname.h
 
 clean:
 	set -e ; for d in $(DIRS) ; do $(MAKE) -C $$d $@ ; done

+ 0 - 1
ldso/include/ldso.h

@@ -44,7 +44,6 @@ extern char *_dl_ldsopath;             /* Where the shared lib loader was found
 extern const char *_dl_progname;       /* The name of the executable being run */
 extern int _dl_secure;                 /* Are we dealing with setuid stuff? */
 extern size_t _dl_pagesize;            /* Store the page size for use later */
-extern const char *_dl_progname;       /* The name of the shared library loader */
 
 #ifdef __SUPPORT_LD_DEBUG__
 extern char *_dl_debug;

+ 1 - 1
ldso/ldso/Makefile

@@ -40,7 +40,7 @@ XXFLAGS+=-Os -g
 else
 XXFLAGS+=$(OPTIMIZATION)
 endif
-XXFLAGS+= $(XARCH_CFLAGS) $(CPU_CFLAGS) $(PICFLAG) \
+XXFLAGS+= -DUCLIBC_LDSO=\"$(UCLIBC_LDSO)\" $(XARCH_CFLAGS) $(CPU_CFLAGS) $(PICFLAG) \
 	-DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" \
 	-fno-builtin -nostdinc -D_LIBC -I$(TOPDIR)ldso/include -I. -I$(TOPDIR)include
 

+ 2 - 3
ldso/ldso/ldso.c

@@ -64,7 +64,7 @@ int   _dl_debug_file      = 2;
 
 /* Needed for standalone execution. */
 unsigned long attribute_hidden _dl_skip_args = 0;
-
+const char *_dl_progname = UCLIBC_LDSO;      /* The name of the executable being run */
 #include "dl-startup.c"
 /* Forward function declarations */
 static int _dl_suid_ok(void);
@@ -83,7 +83,6 @@ static unsigned char *_dl_mmap_zero   = 0;	/* Also used by _dl_malloc */
 
 static struct elf_resolve **init_fini_list;
 static int nlist; /* # items in init_fini_list */
-
 extern void _start(void);
 
 static void __attribute__ ((destructor)) __attribute_used__ _dl_fini(void)
@@ -539,7 +538,7 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, unsigned long load_addr,
 
 				lpntstr = (char*) (tcurr->dynamic_info[DT_STRTAB] + dpnt->d_un.d_val);
 				name = _dl_get_last_path_component(lpntstr);
-				if (_dl_strcmp(name, "ld-uClibc.so.0") == 0)
+				if (_dl_strcmp(name, UCLIBC_LDSO) == 0)
 					continue;
 
 				_dl_if_debug_dprint("\tfile='%s';  needed by '%s'\n", lpntstr, _dl_progname);