From f605da2fb6ec413fbd86e45a78f53cb2e721ab74 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Wed, 9 Jan 2002 10:18:11 +0000 Subject: Be more carefull about erroring out of shell fragments. Try to enable -falign-functions if avilable. --- Makefile | 14 ++++++++++---- Rules.mak | 4 +++- libc/Makefile | 4 +++- libc/unistd/Makefile | 10 ++++++---- libm/Makefile | 2 ++ 5 files changed, 24 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index b22fff82e..64bed1b2a 100644 --- a/Makefile +++ b/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; diff --git a/Rules.mak b/Rules.mak index 6ebf51775..a4149688e 100644 --- a/Rules.mak +++ b/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 diff --git a/libc/Makefile b/libc/Makefile index 295386c2b..c8587b58d 100644 --- a/libc/Makefile +++ b/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); \ diff --git a/libc/unistd/Makefile b/libc/unistd/Makefile index be002c64c..c325eae3a 100644 --- a/libc/unistd/Makefile +++ b/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 \ diff --git a/libm/Makefile b/libm/Makefile index 4eef46bd3..17f0d6f9a 100644 --- a/libm/Makefile +++ b/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; \ -- cgit v1.2.3