Browse Source

Be more carefull about erroring out of shell fragments. Try to
enable -falign-functions if avilable.

Eric Andersen 22 years ago
parent
commit
f605da2fb6
5 changed files with 24 additions and 10 deletions
  1. 10 4
      Makefile
  2. 3 1
      Rules.mak
  3. 3 1
      libc/Makefile
  4. 6 4
      libc/unistd/Makefile
  5. 2 0
      libm/Makefile

+ 10 - 4
Makefile

@@ -76,6 +76,7 @@ headers: dummy
 		fi; \
 	fi;
 	@if [ ! -f include/asm/unistd.h ] ; then \
+	    set -e; \
 	    echo " "; \
 	    echo "The path '$(KERNEL_SOURCE)/include/asm' doesn't exist."; \
 	    echo "I bet you didn't set KERNEL_SOURCE, TARGET_ARCH or HAS_MMU in \`Config'"; \
@@ -84,6 +85,7 @@ headers: dummy
 	    /bin/false; \
 	fi;
 	@if [ $(HAS_MMU) != "true" ]  && [ $(TARGET_ARCH) = "i386" ] ; then \
+	    set -e; \
 	    echo "WARNING: I bet your x86 system really has an MMU, right?"; \
 	    echo "         malloc and friends won't work unless you fix \`Config'"; \
 	    echo " "; \
@@ -199,13 +201,15 @@ ifeq ($(strip $(HAVE_SHARED)),true)
 	install -d $(PREFIX)$(SYSTEM_DEVEL_PREFIX)/bin
 	ln -fs $(DEVEL_PREFIX)/bin/ldd $(PREFIX)$(SYSTEM_DEVEL_PREFIX)/bin/$(TARGET_ARCH)-uclibc-ldd
 	ln -fs $(DEVEL_PREFIX)/bin/readelf $(PREFIX)$(SYSTEM_DEVEL_PREFIX)/bin/$(TARGET_ARCH)-uclibc-readelf
-	if [ -x lib/ld-uClibc-$(MAJOR_VERSION).$(MINOR_VERSION).so ] ; then \
+	@if [ -x lib/ld-uClibc-$(MAJOR_VERSION).$(MINOR_VERSION).so ] ; then \
+	    set -x -e; \
 	    install -m 755 lib/ld-uClibc-$(MAJOR_VERSION).$(MINOR_VERSION).so $(PREFIX)$(DEVEL_PREFIX)/lib; \
 	    mkdir -p $(PREFIX)$(SHARED_LIB_LOADER_PATH); \
 	    ln -s $(DEVEL_PREFIX)/lib/ld-uClibc-$(MAJOR_VERSION).$(MINOR_VERSION).so \
 	    		$(PREFIX)$(SHARED_LIB_LOADER_PATH)/$(UCLIBC_LDSO) || true; \
 	fi;
-	if [ -x ldso/util/ldconfig ] ; then \
+	@if [ -x ldso/util/ldconfig ] ; then \
+	    set -x -e; \
 	    install -d $(PREFIX)$(DEVEL_PREFIX)/etc; \
 	    install -m 755 ldso/util/ldconfig $(PREFIX)$(DEVEL_PREFIX)/bin; \
 	    ln -fs $(DEVEL_PREFIX)/sbin/ldconfig $(PREFIX)$(SYSTEM_DEVEL_PREFIX)/bin/$(TARGET_ARCH)-uclibc-ldconfig; \
@@ -229,13 +233,15 @@ ifeq ($(strip $(HAVE_SHARED)),true)
 	cp -a lib/*.so.* $(PREFIX)$(TARGET_PREFIX)/lib
 	install -m 755 ldso/util/ldd $(PREFIX)$(TARGET_PREFIX)/usr/bin
 	install -m 755 ldso/util/readelf $(PREFIX)$(TARGET_PREFIX)/usr/bin
-	if [ -x lib/ld-uClibc-$(MAJOR_VERSION).$(MINOR_VERSION).so ] ; then \
+	@if [ -x lib/ld-uClibc-$(MAJOR_VERSION).$(MINOR_VERSION).so ] ; then \
+	    set -x -e; \
 	    install -m 755 lib/ld-uClibc-$(MAJOR_VERSION).$(MINOR_VERSION).so $(PREFIX)$(TARGET_PREFIX)/lib; \
 	    mkdir -p $(PREFIX)$(SHARED_LIB_LOADER_PATH); \
 	    ln -s $(TARGET_PREFIX)/lib/ld-uClibc-$(MAJOR_VERSION).$(MINOR_VERSION).so \
 	    		$(PREFIX)$(SHARED_LIB_LOADER_PATH)/$(UCLIBC_LDSO) || true; \
 	fi;
-	if [ -x ldso/util/ldconfig ] ; then \
+	@if [ -x ldso/util/ldconfig ] ; then \
+	    set -x -e; \
 	    install -d $(PREFIX)$(TARGET_PREFIX)/etc; \
 	    install -m 755 ldso/util/ldconfig $(PREFIX)$(TARGET_PREFIX)/sbin; \
 	fi;

+ 3 - 1
Rules.mak

@@ -44,8 +44,10 @@ TARGET_ARCH=${shell $(CC) -dumpmachine | sed -e s'/-.*//' -e 's/i.86/i386/' -e '
 # Some nice architecture specific optimizations
 ifndef OPTIMIZATION
 # use '-Os' optimization if available, else use -O2, allow Config to override
-OPTIMIZATION = ${shell if $(CC) -Os -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \
+OPTIMIZATION += ${shell if $(CC) -Os -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \
     then echo "-Os"; else echo "-O2" ; fi}
+OPTIMIZATION += ${shell if $(CC) -falign-functions=1 -S -o /dev/null -xc \
+		/dev/null >/dev/null 2>&1; then echo "-falign-functions=1"; fi}
 ifeq ($(strip $(TARGET_ARCH)),arm)
 	OPTIMIZATION+=-fstrict-aliasing
 endif

+ 3 - 1
libc/Makefile

@@ -44,12 +44,14 @@ shared: $(TOPDIR)lib/$(LIBNAME)
 	@rm -rf tmp
 	@mkdir tmp
 	@(cd tmp && CC=$(CC) LD=$(LD) NM=$(NM) AR=$(AR) /bin/sh ../../extra/scripts/get-needed-libgcc-objects.sh)
-	if [ -s ./tmp/libgcc-need.a ] ; then \
+	@if [ -s ./tmp/libgcc-need.a ] ; then \
+		set -e -x; \
 		$(CC) -g $(LDFLAGS) -shared -o $(SHARED_FULLNAME) \
 		    -Wl,-soname,$(SHARED_MAJORNAME) -Wl,--whole-archive \
 		    ./$(LIBNAME) ./tmp/libgcc-need.a \
 		    $(LDSO) -Wl,--dynamic-linker,$(DYNAMIC_LINKER); \
 	else \
+		set -e -x; \
 		$(CC) -g $(LDFLAGS) -shared -o $(SHARED_FULLNAME) \
 		    -Wl,-soname,$(SHARED_MAJORNAME) -Wl,--whole-archive \
 		    ./$(LIBNAME) $(LDSO)  -Wl,-dynamic-linker,$(DYNAMIC_LINKER); \

+ 6 - 4
libc/unistd/Makefile

@@ -71,13 +71,15 @@ sysconf_tester.o: sysconf.c
 
 gen_sysconf_tester.o: sysconf_tester.o getpagesize_tester.o
 	@ld -r -o gen_sysconf_tester.o sysconf_tester.o getpagesize_tester.o
-	@if nm -s gen_sysconf_tester.o | grep -v "U errno" | grep " U " ;\
-	then \
+	@if [ nm -s gen_sysconf_tester.o | grep -v "U errno" | grep " U " ] ; then \
+		set -e -x; \
 		echo warning: missing symbols in gen_sysconf_tester.o so using generic sysconf.c ;\
 		cp -f sysconf.c sysconf_src.c ;\
 	else \
-		if ../extra/gcc-uClibc/gcc-uClibc-$(NATIVE_ARCH) -static -D_UCLIBC_GENERATE_SYSCONF_MAIN sysconf.c sysconf_tester.o -o gen_sysconf && \
-			./gen_sysconf > sysconf_$(NATIVE_ARCH).c ;\
+		set -e -x; \
+		if ../extra/gcc-uClibc/gcc-uClibc-$(NATIVE_ARCH) -static \
+			-D_UCLIBC_GENERATE_SYSCONF_MAIN sysconf.c sysconf_tester.o \
+			-o gen_sysconf && ./gen_sysconf > sysconf_$(NATIVE_ARCH).c ;\
 		then \
 			echo successfully built sysconf_$(NATIVE_ARCH).c ;\
 		else \

+ 2 - 0
libm/Makefile

@@ -85,6 +85,7 @@ endif
 
 $(LIBM): ar-target
 	@if [ -f $(LIBM) ] ; then \
+		set -x -e; \
 		install -d $(TOPDIR)lib; \
 		rm -f $(TOPDIR)lib/$(LIBM); \
 		install -m 644 $(LIBM) $(TOPDIR)lib; \
@@ -92,6 +93,7 @@ $(LIBM): ar-target
 
 shared: all
 	if [ -f $(LIBM) ] ; then \
+	    set -x -e; \
 	    $(TARGET_CC) $(TARGET_LDFLAGS) -nostdlib -shared -o $(LIBM_SHARED_FULLNAME) \
 		-Wl,-soname,$(LIBM_SHARED).$(MAJOR_VERSION) -Wl,--whole-archive $(LIBM) -lc; \
 	    install -d $(TOPDIR)lib; \