[uClibc] Re: some patches/cleanups
Peter S. Mazinger
ps.m at gmx.net
Wed Sep 1 00:44:35 UTC 2004
Hello!
The crt issue is solved, so that the utilities are built against the
newly created crt-files.
The patch applies after the pie and iconv patches sent earlier.
Peter
--
Peter S. Mazinger <ps dot m at gmx dot net> ID: 0xA5F059F2
Key fingerprint = 92A4 31E1 56BC 3D5A 2D08 BB6E C389 975E A5F0 59F2
____________________________________________________________________
Miert fizetsz az internetert? Korlatlan, ingyenes internet hozzaferes a FreeStarttol.
Probald ki most! http://www.freestart.hu
-------------- next part --------------
--- ./utils/Makefile.crt~ Wed Sep 1 02:10:20 2004
+++ ./utils/Makefile Wed Sep 1 02:13:54 2004
@@ -39,9 +39,41 @@
endif
ifeq ($(strip $(UCLIBC_PIE_SUPPORT)),y)
-XXFLAGS+= $(PIEFLAG) $(LDPIEFLAG)
+XXFLAGS+= $(PIEFLAG)
endif
+ifeq ($(strip $(UCLIBC_CTOR_DTOR)),y)
+CRT_FILE = $(TOPDIR)lib/crt1.o
+else
+CRT_FILE = $(TOPDIR)lib/crt0.o
+endif
+BEGIN_FILE = $(LIBGCC_DIR)crtbegin.o
+END_FILE = $(LIBGCC_DIR)crtend.o
+
+# for ldconfig (static linking) we need some more tweaking
+# arm and ia64 does not use crtbeginT.o for static
+ifeq ($(strip $(TARGET_arm)),y)
+STATIC_BEGIN_FILE = $(LIBGCC_DIR)crtbegin.o
+else
+STATIC_BEGIN_FILE = $(LIBGCC_DIR)crtbeginT.o
+endif
+
+# used for PIE
+S_CRT_FILE = $(TOPDIR)lib/Scrt1.o
+S_BEGIN_FILE = $(LIBGCC_DIR)crtbeginS.o
+S_END_FILE = $(LIBGCC_DIR)crtendS.o
+
+ifeq ($(strip $(UCLIBC_PIE_SUPPORT)),y)
+START_FILES = $(S_CRT_FILE) $(TOPDIR)lib/crti.o $(S_BEGIN_FILE)
+END_FILES = $(S_END_FILE) $(TOPDIR)lib/crtn.o
+else
+START_FILES = $(CRT_FILE) $(TOPDIR)lib/crti.o $(BEGIN_FILE)
+END_FILES = $(END_FILE) $(TOPDIR)lib/crtn.o
+endif
+
+STATIC_START_FILES = $(CRT_FILE) $(TOPDIR)lib/crti.o $(STATIC_BEGIN_FILE)
+STATIC_END_FILES = $(END_FILE) $(TOPDIR)lib/crtn.o
+
ifeq ($(strip $(HAVE_SHARED)),y)
all: $(TARGETS) $(TARGET_ICONV)
else
@@ -52,26 +84,31 @@
@$(LN) -fs $(TOPDIR)include/elf.h
readelf: readelf.c
- $(CC) $(CFLAGS) -Wl,-s $^ -o $@ $(LDADD_LIBFLOAT) -L../lib
+ $(CC) $(CFLAGS) $(XXFLAGS) $(LDPIEFLAG) -Wl,-s \
+ -nostdlib -o $@ $(START_FILES) $^ $(LDADD_LIBFLOAT) -L../lib \
+ -lc $(LIBGCC) $(END_FILES)
$(STRIPTOOL) -x -R .note -R .comment $@
ldconfig: ldconfig.c readsoname.c
$(CC) $(CFLAGS) $(XXFLAGS) -Wl,-s -static \
-DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" \
-DUCLIBC_LDSO=$(UCLIBC_LDSO) -I. -I../ldso/include \
- $^ -o $@ $(LDADD_LIBFLOAT) -L../lib
+ -nostdlib -o $@ $(STATIC_START_FILES) $^ $(LDADD_LIBFLOAT) -L../lib \
+ -lc $(LIBGCC) $(STATIC_END_FILES)
$(STRIPTOOL) -x -R .note -R .comment $@
ldd: ldd.c
- $(CC) $(CFLAGS) $(XXFLAGS) -Wl,-s \
+ $(CC) $(CFLAGS) $(XXFLAGS) $(LDPIEFLAG) -Wl,-s \
-DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" \
-DUCLIBC_LDSO=$(UCLIBC_LDSO) \
- $^ -o $@ $(LDADD_LIBFLOAT) -L../lib
+ -nostdlib -o $@ $(START_FILES) $^ $(LDADD_LIBFLOAT) -L../lib \
+ -lc $(LIBGCC) $(END_FILES)
$(STRIPTOOL) -x -R .note -R .comment $@
iconv: ../libc/misc/wchar/wchar.c
- $(CC) $(CFLAGS) $(XXFLAGS) -DL_iconv_main ../libc/misc/wchar/wchar.c -o $@ \
- $(LDADD_LIBFLOAT) -L../lib
+ $(CC) $(CFLAGS) $(XXFLAGS) $(LDPIEFLAG) -Wl,-s -DL_iconv_main \
+ -nostdlib -o $@ $(START_FILES) $^ $(LDADD_LIBFLOAT) -L../lib \
+ -lc $(LIBGCC) $(END_FILES)
$(STRIPTOOL) -x -R .note -R .comment $@
hostutils: ldd.host ldconfig.host readelf.host
--- ./Rules.mak.crt~ Wed Sep 1 02:10:20 2004
+++ ./Rules.mak Wed Sep 1 02:10:20 2004
@@ -91,7 +91,7 @@
PICFLAG:=-fPIC
PIEFLAG:=$(call check_gcc,-fPIE,)
ifeq ($(strip $(PIEFLAG)),-fPIE)
-LDPIEFLAG:=-pie
+LDPIEFLAG:=-Wl,-pie
endif
# Some nice CPU specific optimizations
More information about the uClibc
mailing list