summaryrefslogtreecommitdiff
path: root/package/gcc
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2010-04-04 10:34:02 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2010-04-04 10:34:02 +0200
commit5042ac8e5927d0089d3902b1c37e5bcc1565d053 (patch)
treecd2be3085808c5ac59dd70f9c610c6a40bfe3ffd /package/gcc
parent401dabf66529cfb5ab47b4c78d5e25fd493eef1f (diff)
parent4d569ed1a3305c7b7abe8fa4273cea3b559cc85a (diff)
Merge branch 'master' of git+ssh://openadk.org/git/openadk
Conflicts: BUGS package/autoconf/Makefile
Diffstat (limited to 'package/gcc')
-rw-r--r--package/gcc/Config.in9
-rw-r--r--package/gcc/Makefile54
-rw-r--r--package/gcc/patches/cross-gcc-fix.patch13
-rw-r--r--package/gcc/patches/mirbsd-compat.patch12
-rw-r--r--package/gcc/patches/no-lib64.patch47
5 files changed, 108 insertions, 27 deletions
diff --git a/package/gcc/Config.in b/package/gcc/Config.in
deleted file mode 100644
index be3446b96..000000000
--- a/package/gcc/Config.in
+++ /dev/null
@@ -1,9 +0,0 @@
-config ADK_PACKAGE_GCC
- prompt "gcc............................... GNU Compiler Collection"
- tristate
- default n
- select ADK_PACKAGE_LIBGMP
- select ADK_PACKAGE_MPFR
- help
- GCC
- http://www.gnu.org/gcc
diff --git a/package/gcc/Makefile b/package/gcc/Makefile
index 813a8241f..b77895f5b 100644
--- a/package/gcc/Makefile
+++ b/package/gcc/Makefile
@@ -6,47 +6,65 @@ include ${TOPDIR}/toolchain/gcc/Makefile.inc
PKG_DESCR:= GNU compiler collection
PKG_SECTION:= comp
-PKG_DEPENDS:= mpfr
PKG_OPTS:= noremove
+PKG_DEPENDS:= libgmp mpfr
+PKG_BUILDDEP+= gmp mpfr
+
+ifeq ($(ADK_TARGET_LIB_UCLIBC),y)
+PKG_DEPENDS+= uclibc-dev
+PKG_BUILDDEP+= uclibc
+endif
+ifeq ($(ADK_TARGET_LIB_EGLIBC),y)
+PKG_DEPENDS+= eglibc-dev
+PKG_BUILDDEP+= eglibc
+endif
+ifeq ($(ADK_TARGET_LIB_GLIBC),y)
+PKG_DEPENDS+= glibc-dev
+PKG_BUILDDEP+= glibc
+endif
+
+PKG_HOST_DEPENDS:= !freebsd
+PKG_TARGET_DEPENDS:= !ag241
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:= ''
-CONFIGURE_STYLE= gnu
-ifeq ($(ADK_LINUX_MIPS64_LEMOTE),y)
-CONFIGURE_ARGS+= --with-abi=64
+
+ifeq ($(ADK_LINUX_64),y)
+CONFIGURE_ARGS+= --with-abi=64
endif
-CONFIGURE_ENV+= ac_cv_func_fputc_unlocked=no
-CONFIGURE_ARGS+= --enable-languages=c \
- --libexecdir=/usr/lib \
+
+CONFIGURE_ARGS+= --enable-languages=c,c++ \
--host=$(REAL_GNU_TARGET_NAME) \
--target=$(REAL_GNU_TARGET_NAME) \
--disable-__cxa_atexit \
--without-headers \
+ --libexecdir=/usr/lib \
--with-gnu-ld \
--disable-libssp \
--disable-nls \
+ --disable-sjlj-exceptions \
+ --disable-biarch \
--disable-libmudflap \
--disable-libgomp \
- --disable-multilib
-BUILD_STYLE:= auto
-ALL_TARGET:= all-gcc all-target-libgcc
-INSTALL_STYLE:= auto
-INSTALL_TARGET:= install-gcc install-target-libgcc
+ --disable-multilib \
+ --disable-libstdcxx-pch
post-install:
${INSTALL_DIR} ${IDIR_GCC}/usr/lib/gcc ${IDIR_GCC}/usr/bin
+ ${INSTALL_DIR} ${IDIR_GCC}/lib ${IDIR_GCC}/usr/include/c++
${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++/
+ cd ${IDIR_GCC}/lib && ln -sf ../usr/bin/cpp .
${CP} ${WRKINST}/usr/lib/gcc/* ${IDIR_GCC}/usr/lib/gcc/
-ifeq ($(ADK_TARGET_LIB_UCLIBC),y)
- ${CP} ${STAGING_DIR}/lib/crt* ${IDIR_GCC}/usr/lib
-else
- ${CP} ${STAGING_DIR}/usr/lib/crt* ${IDIR_GCC}/usr/lib
-endif
rm -rf ${IDIR_GCC}/usr/lib/gcc/*/*/install-tools
include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/gcc/patches/cross-gcc-fix.patch b/package/gcc/patches/cross-gcc-fix.patch
new file mode 100644
index 000000000..9b5d55318
--- /dev/null
+++ b/package/gcc/patches/cross-gcc-fix.patch
@@ -0,0 +1,13 @@
+diff -Nur gcc-4.4.2.orig/gcc/Makefile.in gcc-4.4.2/gcc/Makefile.in
+--- gcc-4.4.2.orig/gcc/Makefile.in 2009-07-25 19:53:35.000000000 +0200
++++ gcc-4.4.2/gcc/Makefile.in 2009-11-22 15:30:27.000000000 +0100
+@@ -898,7 +898,8 @@
+ # Likewise. Put INCLUDES at the beginning: this way, if some autoconf macro
+ # puts -I options in CPPFLAGS, our include files in the srcdir will always
+ # win against random include files in /usr/include.
+-ALL_CPPFLAGS = $(INCLUDES) $(CPPFLAGS)
++#ALL_CPPFLAGS = $(INCLUDES) $(CPPFLAGS)
++ALL_CPPFLAGS = $(INCLUDES)
+
+ # Build and host support libraries.
+ LIBIBERTY = ../libiberty/libiberty.a
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
+