Fixes XCC texinfo dependency
[akaros.git] / tools / compilers / gcc-glibc / Makefile
index 05ebb26..0850d5f 100644 (file)
@@ -38,7 +38,7 @@ DESTDIR ?= /
 # Configuration parameters for make-riscv
 RISCV_ARCH := riscv
 RISCV_BINARY_PREFIX := $(RISCV_ARCH)-ros-
-RISCV_GCC_BUILD_FLAGS :=
+RISCV_GCC_BUILD_FLAGS := 
 RISCV_CFLAGS :=
 
 # Configuration parameters for x86
@@ -88,8 +88,10 @@ make-all:
        $(MAKE) .$(BINARY_PREFIX)ros-headers-install
        $(MAKE) .$(BINARY_PREFIX)gcc-stage1-make
        $(MAKE) .$(BINARY_PREFIX)gcc-stage1-install
+       $(MAKE) .$(BINARY_PREFIX)ros-install-dummy-libs
        $(MAKE) .$(BINARY_PREFIX)glibc-make
        $(MAKE) .$(BINARY_PREFIX)glibc-install
+       $(MAKE) .$(BINARY_PREFIX)ros-install-libs
        $(MAKE) .$(BINARY_PREFIX)gcc-stage2-make
        $(MAKE) .$(BINARY_PREFIX)gcc-stage2-install
        mkdir -p $(ROSDIR)/fs/$(ARCH)/lib
@@ -142,13 +144,21 @@ binutils-$(BINUTILS_VERSION): binutils-$(BINUTILS_VERSION).tar.bz2
 gcc-$(GCC_VERSION): gcc-$(GCC_VERSION).tar.bz2
        rm -rf gcc-$(GCC_VERSION)
        tar -jxf gcc-$(GCC_VERSION).tar.bz2
-       patch -p0 < gcc-$(GCC_VERSION)-ros.patch
+       $(MAKE) .gcc-ros-patch
        patch --no-backup-if-mismatch -p0 < gcc-$(GCC_VERSION)-riscv.patch
 
+.gcc-ros-patch:
+       -cd gcc-$(GCC_VERSION); \
+       diff -ruB --unidirectional-new-file \
+            ../gcc-$(GCC_VERSION) \
+            ../gcc-$(GCC_VERSION)-ros \
+            | grep -v "Only in ../gcc-$(GCC_VERSION)" \
+            | patch -p2 
+
 glibc-$(GLIBC_VERSION): glibc-$(GLIBC_VERSION).tar.bz2
        rm -rf glibc-$(GLIBC_VERSION)
        tar -jxf glibc-$(GLIBC_VERSION).tar.bz2
-       $(MAKE) .glibc-patch
+       $(MAKE) .glibc-ros-patch
        patch --no-backup-if-mismatch -p0 < glibc-$(GLIBC_VERSION)-riscv.patch
        rm glibc-$(GLIBC_VERSION)/sysdeps/sparc/sparc32/elf/start.S
        rm glibc-$(GLIBC_VERSION)/sysdeps/riscv/elf/start.S
@@ -158,7 +168,7 @@ glibc-$(GLIBC_VERSION): glibc-$(GLIBC_VERSION).tar.bz2
        rm glibc-$(GLIBC_VERSION)/sysdeps/i386/init-first.c
        rm glibc-$(GLIBC_VERSION)/sysdeps/i386/sysdep.h
 
-.glibc-patch:
+.glibc-ros-patch:
        -cd glibc-$(GLIBC_VERSION); \
        diff -ruB --unidirectional-new-file \
             ../glibc-$(GLIBC_VERSION) \
@@ -193,6 +203,7 @@ $(BINARY_PREFIX)gcc-stage2-builddir: gcc-$(GCC_VERSION)
                    --prefix=$(INSTDIR) \
                    --includedir=$(INSTDIR)/include \
                    --disable-werror;
+       echo "MAKEINFO = :" >> $(BINARY_PREFIX)binutils-builddir/Makefile;
        touch $@
 
 .$(BINARY_PREFIX)binutils-make: .$(BINARY_PREFIX)binutils-configure
@@ -239,6 +250,7 @@ $(BINARY_PREFIX)gcc-stage2-builddir: gcc-$(GCC_VERSION)
                --prefix=$(INSTDIR) \
                --with-headers=$(INSTDIR)/$(ARCH)-ros/include \
                $(GCC_BUILD_FLAGS);
+       echo "MAKEINFO = :" >> $(BINARY_PREFIX)gcc-stage1-builddir/Makefile;
        touch $@
 
 .$(BINARY_PREFIX)gcc-stage1-make: .$(BINARY_PREFIX)gcc-stage1-configure
@@ -255,6 +267,10 @@ $(BINARY_PREFIX)gcc-stage2-builddir: gcc-$(GCC_VERSION)
        #-ln -vs libgcc.a `$(BINARY_PREFIX)gcc -print-libgcc-file-name | \
        #                 sed 's/libgcc/&_eh/'`
 
+.$(BINARY_PREFIX)ros-install-dummy-libs:
+       rm -rf $(INSTDIR)/$(ARCH)-ros/lib/libparlib.a
+       $(ARCH)-ros-ar cr $(INSTDIR)/$(ARCH)-ros/lib/libparlib.a
+
 .$(BINARY_PREFIX)glibc-configure: 
        $(MAKE) $(BINARY_PREFIX)glibc-builddir
        cd $(BINARY_PREFIX)glibc-builddir; \
@@ -281,12 +297,18 @@ $(BINARY_PREFIX)gcc-stage2-builddir: gcc-$(GCC_VERSION)
        cd $(BINARY_PREFIX)glibc-builddir; \
        make -j $(MAKE_JOBS) install
 
+.$(BINARY_PREFIX)ros-install-libs:
+       cd $(ROSDIR); \
+       make userclean; \
+       make TARGET_ARCH=$(ARCH) -j $(MAKE_JOBS) install-libs
+
 .$(BINARY_PREFIX)gcc-stage2-configure:
        $(MAKE) $(BINARY_PREFIX)gcc-stage2-builddir
        cd $(BINARY_PREFIX)gcc-stage2-builddir; \
        ../gcc-$(GCC_VERSION)/configure \
                  --enable-shared \
                  --enable-tls \
+                 --enable-libgomp \
                  --disable-multilib \
                  --disable-nls \
                  --program-prefix=$(BINARY_PREFIX) \
@@ -294,9 +316,11 @@ $(BINARY_PREFIX)gcc-stage2-builddir: gcc-$(GCC_VERSION)
                  --prefix=$(INSTDIR) \
                  --enable-languages=c,c++ \
                  $(GCC_BUILD_FLAGS) \
+                 --without-libffi \
                  --with-__thread \
                  --with-headers=$(INSTDIR)/$(ARCH)-ros/include \
                  --disable-werror;
+       echo "MAKEINFO = :" >> $(BINARY_PREFIX)gcc-stage2-builddir/Makefile;
        touch $@
 
 .$(BINARY_PREFIX)gcc-stage2-make: .$(BINARY_PREFIX)gcc-stage2-configure