浏览代码

Makefile cleanups. For starters, OPTIMIZATION was missing...

Eric Andersen 23 年之前
父节点
当前提交
163df9f27d
共有 2 个文件被更改,包括 15 次插入15 次删除
  1. 2 2
      Makefile
  2. 13 13
      Rules.mak

+ 2 - 2
Makefile

@@ -43,10 +43,10 @@ halfclean:
 
 headers: dummy
 	@rm -f include/asm include/net include/linux include/bits
-	@ln -s $(KERNEL_SOURCE)/include/asm-$(ARCH_DIR) include/asm
+	@ln -s $(KERNEL_SOURCE)/include/asm include/asm
 	@if [ ! -f include/asm/unistd.h ] ; then \
 	    echo " "; \
-	    echo "The path '$(KERNEL_SOURCE)/include/asm-$(ARCH_DIR)' doesn't exist."; \
+	    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'"; \
 	    echo "correctly.  Please edit \`Config' and fix these settings."; \
 	    echo " "; \

+ 13 - 13
Rules.mak

@@ -26,13 +26,14 @@ include $(TOPDIR)Config
 
 GCCINCDIR = $(shell $(CC) -print-search-dirs | sed -ne "s/install: \(.*\)/\1include/gp")
 
+# use '-Os' optimization if available, else use -O2
+OPTIMIZATION = $(shell if $(CC) -Os -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \
+    then echo "-Os"; else echo "-O2" ; fi)
+
 ARFLAGS=r
 
-CCFLAGS=$(OPTIMIZATION) -fno-builtin -nostdinc $(CPUFLAGS) -Dlinux -D__linux__ -I$(TOPDIR)include -I$(GCCINCDIR) -I. -D__LIBC__
 
-ifeq ($(TARGET_ARCH), arm)
-    ARCH_CFLAGS=-fpic
-endif
+CCFLAGS=$(OPTIMIZATION) -fno-builtin -nostdinc $(CPUFLAGS) -Dlinux -D__linux__ -I$(TOPDIR)include -I$(GCCINCDIR) -I. -D__LIBC__
 
 CFLAGS=$(ARCH_CFLAGS) $(CCFLAGS) $(DEFS)
 
@@ -51,9 +52,6 @@ endif
 
 ifneq ($(HAS_MMU),true)
     CFLAGS += -D__HAS_NO_MMU__
-    ARCH_DIR = $(shell echo $(TARGET_ARCH)nommu)
-else
-    ARCH_DIR = $(TARGET_ARCH)
 endif
 
 ifneq ($(HAS_FLOATS),true)
@@ -61,14 +59,16 @@ ifneq ($(HAS_FLOATS),true)
 endif
 
 
-
+# It turns out the currently, function-sections causes ldelf2flt to segfault.
+# So till further notice, this is disabled by default....
+# 
 # Use '-ffunction-sections -fdata-sections' and '--gc-sections' if they work
 # to try and strip out any unused junk automagically....
 #
-ifeq ($(shell $(CC) -ffunction-sections -fdata-sections -S \
-	-o /dev/null -xc /dev/null && $(LD) --gc-sections -v >/dev/null && echo 1),1)
-    CFLAGS += -ffunction-sections -fdata-sections
-    LDFLAGS += --gc-sections
-endif
+#ifeq ($(shell $(CC) -ffunction-sections -fdata-sections -S \
+#	-o /dev/null -xc /dev/null && $(LD) --gc-sections -v >/dev/null && echo 1),1)
+#    CFLAGS += -ffunction-sections -fdata-sections
+#    LDFLAGS += --gc-sections
+#endif