Browse Source

first try to get eglibc/glibc based toolchain working

when HOST == TARGET eglibc/glibc toolchain does not compile
correctly. With this patches at least eglibc compiles fine.
There still exist a problem with glibc. Someone should check
what diff in eglibc make the build work :}
Waldemar Brodkorb 15 years ago
parent
commit
aa4ab58940
3 changed files with 17 additions and 4 deletions
  1. 0 1
      toolchain/eglibc/Makefile
  2. 6 3
      toolchain/gcc/Makefile
  3. 11 0
      toolchain/glibc/Makefile

+ 0 - 1
toolchain/eglibc/Makefile

@@ -44,7 +44,6 @@ $(WRKBUILD)/.headers_configure:
 	mkdir -p $(EGLIBC_BUILD_DIR_INITIAL)
 	(cd ${WRKDIR}/$(PKG_NAME)-$(PKG_VERSION); \
 		ln -sf ../ports ${WRKDIR}/$(PKG_NAME)-$(PKG_VERSION)/libc);
-	#(cd ${WRKDIR}/$(PKG_NAME)-$(PKG_VERSION)/libc; autoconf --force);
 	$(CP) ${TOPDIR}/toolchain/eglibc/eglibc.config \
 		$(EGLIBC_BUILD_DIR_INITIAL)
 	(cd $(EGLIBC_BUILD_DIR_INITIAL); \

+ 6 - 3
toolchain/gcc/Makefile

@@ -17,6 +17,7 @@ GCC_CONFOPTS=		--prefix=$(STAGING_TOOLS) \
 			--disable-libmudflap \
 			--disable-libgomp \
 			--disable-biarch \
+			--disable-decimal-float \
 			--disable-multilib \
 			--disable-sjlj-exceptions \
 			--disable-libssp \
@@ -56,7 +57,7 @@ $(GCC_BUILD_DIR_MINIMAL)/.configured:
 
 $(GCC_BUILD_DIR_MINIMAL)/.compiled: $(GCC_BUILD_DIR_MINIMAL)/.configured
 	PATH=$(TARGET_PATH) \
-	$(MAKE) -C $(GCC_BUILD_DIR_MINIMAL) all-gcc 
+	$(MAKE) -C $(GCC_BUILD_DIR_MINIMAL) all-gcc
 	touch $@
 
 $(WRKBUILD)/.headers: $(GCC_BUILD_DIR_MINIMAL)/.compiled
@@ -76,6 +77,8 @@ $(GCC_BUILD_DIR_INITIAL)/.configured:
 			${GCC_CONFOPTS} \
 			--enable-languages=c \
 			--disable-shared \
+			--disable-threads \
+			--with-newlib \
 			--with-sysroot=$(TOOLCHAIN_SYSROOT) \
 	);
 	touch $@
@@ -83,12 +86,12 @@ $(GCC_BUILD_DIR_INITIAL)/.configured:
 
 $(GCC_BUILD_DIR_INITIAL)/.compiled: $(GCC_BUILD_DIR_INITIAL)/.configured
 	PATH=$(TARGET_PATH) \
-	$(MAKE) -C $(GCC_BUILD_DIR_INITIAL) all
+	$(MAKE) -C $(GCC_BUILD_DIR_INITIAL) all-gcc all-target-libgcc
 	touch $@
 
 $(WRKBUILD)/.configured: $(GCC_BUILD_DIR_INITIAL)/.compiled
 	PATH=$(TARGET_PATH) \
-	$(MAKE) -C $(GCC_BUILD_DIR_INITIAL) install
+	$(MAKE) -C $(GCC_BUILD_DIR_INITIAL) install-gcc install-target-libgcc
 	touch $@
 
 $(GCC_BUILD_DIR_FINAL)/.configured:

+ 11 - 0
toolchain/glibc/Makefile

@@ -57,11 +57,22 @@ $(WRKBUILD)/.headers_configure:
 	touch $@
 
 $(WRKBUILD)/.headers: $(WRKBUILD)/.headers_configure
+	mkdir -p $(TOOLCHAIN_SYSROOT)/usr/lib
 	$(MAKE) -C $(GLIBC_BUILD_DIR_INITIAL) \
 		cross-compiling=yes \
 		install_root=$(TOOLCHAIN_SYSROOT) \
 		install-headers
 	touch $(TOOLCHAIN_SYSROOT)/usr/include/gnu/stubs.h
+	PATH='${TARGET_PATH}' \
+	$(MAKE) -C $(GLIBC_BUILD_DIR_INITIAL) \
+		csu/subdir_lib
+	( cd $(GLIBC_BUILD_DIR_INITIAL); \
+		$(CP) csu/crt1.o csu/crti.o csu/crtn.o \
+		$(TOOLCHAIN_SYSROOT)/usr/lib \
+	);
+	PATH='${TARGET_PATH}' \
+	$(TARGET_CC) -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o $(TOOLCHAIN_SYSROOT)/usr/lib/libc.so
 	touch $@
 
 $(WRKBUILD)/.configured: