From 098558dc60eb34e655d614f7dab32cca446771a3 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Fri, 5 Mar 2010 18:21:03 +0100 Subject: fix gcc package on MIPS64 --- package/eglibc/files/libc.so.mips | 5 ++++ package/gcc/Makefile | 8 +++++- package/gcc/patches/mirbsd-compat.patch | 12 +++++++++ package/gcc/patches/no-lib64.patch | 47 +++++++++++++++++++++++++++++++++ 4 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 package/eglibc/files/libc.so.mips create mode 100644 package/gcc/patches/mirbsd-compat.patch create mode 100644 package/gcc/patches/no-lib64.patch diff --git a/package/eglibc/files/libc.so.mips b/package/eglibc/files/libc.so.mips new file mode 100644 index 000000000..6165d3e9c --- /dev/null +++ b/package/eglibc/files/libc.so.mips @@ -0,0 +1,5 @@ +/* GNU ld script + Use the shared library, but some functions are only in + the static library, so try that secondarily. */ + OUTPUT_FORMAT(elf64-tradlittlemips) + GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a AS_NEEDED ( /lib/ld.so.1 ) ) diff --git a/package/gcc/Makefile b/package/gcc/Makefile index 36aa0f94c..3c6e0b701 100644 --- a/package/gcc/Makefile +++ b/package/gcc/Makefile @@ -27,10 +27,15 @@ PKG_HOST_DEPENDS:= !freebsd include ${TOPDIR}/mk/package.mk -$(eval $(call PKG_template,GCC,gcc,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS})) +$(eval $(call PKG_template,GCC,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS})) TCFLAGS:= '' TCPPFLAGS:= '' + +ifeq ($(ADK_LINUX_64),y) +CONFIGURE_ARGS+= --with-abi=64 +endif + CONFIGURE_ARGS+= --enable-languages=c,c++ \ --host=$(REAL_GNU_TARGET_NAME) \ --target=$(REAL_GNU_TARGET_NAME) \ @@ -53,6 +58,7 @@ post-install: ${INSTALL_BIN} ${WRKINST}/usr/bin/gcc ${IDIR_GCC}/usr/bin/ ${INSTALL_BIN} ${WRKINST}/usr/bin/g++ ${IDIR_GCC}/usr/bin/ cd ${IDIR_GCC}/usr/bin/ && ln -sf g++ c++ + cd ${IDIR_GCC}/usr/bin/ && ln -sf gcc cc ${INSTALL_BIN} ${WRKINST}/usr/bin/cpp ${IDIR_GCC}/usr/bin/ ${CP} ${WRKINST}/usr/lib/libstdc++*so* ${IDIR_GCC}/usr/lib/ ${CP} ${WRKINST}/usr/include/c++/* ${IDIR_GCC}/usr/include/c++/ diff --git a/package/gcc/patches/mirbsd-compat.patch b/package/gcc/patches/mirbsd-compat.patch new file mode 100644 index 000000000..2f3ea0c87 --- /dev/null +++ b/package/gcc/patches/mirbsd-compat.patch @@ -0,0 +1,12 @@ +diff -Nur gcc-4.4.2.orig/gcc/configure gcc-4.4.2/gcc/configure +--- gcc-4.4.2.orig/gcc/configure Tue Mar 24 18:45:39 2009 ++++ gcc-4.4.2/gcc/configure Sat Dec 19 21:07:07 2009 +@@ -19381,7 +19381,7 @@ + dynamic_linker='ldqnx.so' + ;; + +-openbsd*) ++mirbsd*|openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no diff --git a/package/gcc/patches/no-lib64.patch b/package/gcc/patches/no-lib64.patch new file mode 100644 index 000000000..add17ecb8 --- /dev/null +++ b/package/gcc/patches/no-lib64.patch @@ -0,0 +1,47 @@ +diff -Nur gcc-4.4.1.orig/gcc/config/i386/linux64.h gcc-4.4.1/gcc/config/i386/linux64.h +--- gcc-4.4.1.orig/gcc/config/i386/linux64.h 2009-04-10 01:23:07.000000000 +0200 ++++ gcc-4.4.1/gcc/config/i386/linux64.h 2009-08-21 18:34:13.000000000 +0200 +@@ -59,7 +59,7 @@ + done. */ + + #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" +-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2" ++#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2" + + #undef ASM_SPEC + #define ASM_SPEC "%{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} \ +diff -Nur gcc-4.4.1.orig/gcc/config/i386/t-linux64 gcc-4.4.1/gcc/config/i386/t-linux64 +--- gcc-4.4.1.orig/gcc/config/i386/t-linux64 2008-07-02 17:59:19.000000000 +0200 ++++ gcc-4.4.1/gcc/config/i386/t-linux64 2009-08-21 18:34:13.000000000 +0200 +@@ -7,7 +7,7 @@ + + MULTILIB_OPTIONS = m64/m32 + MULTILIB_DIRNAMES = 64 32 +-MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib) ++MULTILIB_OSDIRNAMES = ../lib $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib) + + LIBGCC = stmp-multilib + INSTALL_LIBGCC = install-multilib +diff -Nur gcc-4.4.1.orig/gcc/config/mips/linux64.h gcc-4.4.1/gcc/config/mips/linux64.h +--- gcc-4.4.1.orig/gcc/config/mips/linux64.h 2009-02-20 16:20:38.000000000 +0100 ++++ gcc-4.4.1/gcc/config/mips/linux64.h 2009-08-21 18:37:19.000000000 +0200 +@@ -36,7 +36,7 @@ + %{profile:-lc_p} %{!profile:-lc}}" + + #define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1" +-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld.so.1" ++#define GLIBC_DYNAMIC_LINKER64 "/lib/ld.so.1" + #define GLIBC_DYNAMIC_LINKERN32 "/lib32/ld.so.1" + #define UCLIBC_DYNAMIC_LINKERN32 "/lib32/ld-uClibc.so.0" + #define LINUX_DYNAMIC_LINKERN32 \ +diff -Nur gcc-4.4.1.orig/gcc/config/mips/t-linux64 gcc-4.4.1/gcc/config/mips/t-linux64 +--- gcc-4.4.1.orig/gcc/config/mips/t-linux64 2006-06-06 14:51:24.000000000 +0200 ++++ gcc-4.4.1/gcc/config/mips/t-linux64 2009-08-21 18:34:13.000000000 +0200 +@@ -1,6 +1,6 @@ + MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64 + MULTILIB_DIRNAMES = n32 32 64 +-MULTILIB_OSDIRNAMES = ../lib32 ../lib ../lib64 ++MULTILIB_OSDIRNAMES = ../lib ../lib ../lib + + EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o + -- cgit v1.2.3