gcc-3.4.0 is coming soon! Here's a crosstool patch to support it
Dan Kegel
dank@kegel.com
Fri Apr 9 13:18:00 GMT 2004
gcc-3.4.0 just had its first release candidate. Here's
a patch to crosstool-0.28-rc4 that lets you build it.
Enjoy...
diff -Naur crosstool-0.28-rc4/ChangeLog crosstool-0.28-rc4h/ChangeLog
--- crosstool-0.28-rc4/ChangeLog Mon Apr 5 19:00:49 2004
+++ crosstool-0.28-rc4h/ChangeLog Fri Apr 9 05:56:41 2004
@@ -2,6 +2,13 @@
*inside* the patch file at the top, so read the patch file
for more info.
+ getandpatch.sh:
+ * added support for downloading gcc-3.4.0-20040406
+
+ glibc-2.3.2:
+ * added patches/glibc-2.3.2/fixup.patch to support gcc-3.4.0-20040406
+
+
0.28-rc4:
* common/bin/install-distccd.sh tested on Red Hat Linux, seems to work
Not yet tested on cygwin or Mac
diff -Naur crosstool-0.28-rc4/demo-i686.sh crosstool-0.28-rc4h/demo-i686.sh
--- crosstool-0.28-rc4/demo-i686.sh Sun Mar 14 09:51:57 2004
+++ crosstool-0.28-rc4h/demo-i686.sh Wed Apr 7 22:26:09 2004
@@ -20,6 +20,7 @@
#eval `cat i686.dat gcc-3.3-20040105-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat i686.dat gcc-3.3-20040112-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat i686.dat gcc-3.3-20040126-glibc-2.3.2.dat` sh all.sh --notest
- eval `cat i686.dat gcc-3.3.3-glibc-2.3.2.dat` sh all.sh --notest
+#eval `cat i686.dat gcc-3.3.3-glibc-2.3.2.dat` sh all.sh --notest
+ eval `cat i686.dat gcc-3.4.0-20040406-glibc-2.3.2.dat` sh all.sh --notest
echo Done.
diff -Naur crosstool-0.28-rc4/gcc-3.4.0-20040406-glibc-2.3.2.dat crosstool-0.28-rc4h/gcc-3.4.0-20040406-glibc-2.3.2.dat
--- crosstool-0.28-rc4/gcc-3.4.0-20040406-glibc-2.3.2.dat Wed Dec 31 16:00:00 1969
+++ crosstool-0.28-rc4h/gcc-3.4.0-20040406-glibc-2.3.2.dat Wed Apr 7 22:25:53 2004
@@ -0,0 +1,6 @@
+BINUTILS_DIR=binutils-2.14.90.0.5
+BINUTILS_URL=http://www.kernel.org/pub/linux/devel/binutils
+GCC_DIR=gcc-3.4.0-20040406
+GLIBC_DIR=glibc-2.3.2
+LINUX_DIR=linux-2.4.21
+GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2
diff -Naur crosstool-0.28-rc4/getandpatch.sh crosstool-0.28-rc4h/getandpatch.sh
--- crosstool-0.28-rc4/getandpatch.sh Fri Apr 9 06:01:47 2004
+++ crosstool-0.28-rc4h/getandpatch.sh Wed Apr 7 22:26:02 2004
@@ -143,9 +143,9 @@
getUnpackAndPatch $BINUTILS_URL/$BINUTILS_DIR.tar.bz2 $BINUTILS_URL/$BINUTILS_DIR.tar.gz
case $GCC_DIR in
- gcc-3.3.3|gcc-3.4.?)
+ gcc-3.3.3)
getUnpackAndPatch ftp://ftp.gnu.org/pub/gnu/gcc/releases/$GCC_DIR/$GCC_DIR.tar.bz2 ;;
- gcc-3.3.3-2004*)
+ gcc-3.4.0-20040406)
dir=`echo $GCC_DIR | sed s/gcc-/prerelease-/`
getUnpackAndPatch ftp://gcc.gnu.org/pub/gcc/$dir/$GCC_DIR.tar.gz ;;
gcc-3.3-200*|gcc-3.4-200*)
diff -Naur crosstool-0.28-rc4/patches/glibc-2.3.2/fixup.patch crosstool-0.28-rc4h/patches/glibc-2.3.2/fixup.patch
--- crosstool-0.28-rc4/patches/glibc-2.3.2/fixup.patch Wed Dec 31 16:00:00 1969
+++ crosstool-0.28-rc4h/patches/glibc-2.3.2/fixup.patch Fri Apr 9 05:58:34 2004
@@ -0,0 +1,74 @@
+Fixes
+dl-runtime.c:56: error: conflicting types for 'fixup'
+../sysdeps/i386/dl-machine.h:158: error: previous declaration of 'fixup' was here
+when building with gcc-3.4.0
+
+First hunk:
+Define ARCH_FIXUP_ATTRIBUTE and use it in the fixup function declarations.
+http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/i386/dl-machine.h.diff?r1=1.124&r2=1.125&cvsroot=glibc
+
+Second hunk:
+If ARCH_FIXUP_ATTRIBUTE is not defined, provide dummy definition.
+Use macro in fixup function definitions.
+http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/elf/dl-runtime.c.diff?r1=1.64&r2=1.65&cvsroot=glibc
+[rediffed against glibc-2.3.2]
+
+===================================================================
+RCS file: /cvs/glibc/libc/sysdeps/i386/dl-machine.h,v
+retrieving revision 1.124
+retrieving revision 1.125
+diff -u -r1.124 -r1.125
+--- libc/sysdeps/i386/dl-machine.h 2004/03/05 10:14:49 1.124
++++ libc/sysdeps/i386/dl-machine.h 2004/03/09 07:42:29 1.125
+@@ -154,11 +154,14 @@
+ destroys the passed register information. */
+ /* GKM FIXME: Fix trampoline to pass bounds so we can do
+ without the `__unbounded' qualifier. */
+-static ElfW(Addr) fixup (struct link_map *__unbounded l, ElfW(Word) reloc_offset)
+- __attribute__ ((regparm (2), unused));
++#define ARCH_FIXUP_ATTRIBUTE __attribute__ ((regparm (3), unused))
++
++static ElfW(Addr) fixup (struct link_map *__unbounded l,
++ ElfW(Word) reloc_offset)
++ ARCH_FIXUP_ATTRIBUTE;
+ static ElfW(Addr) profile_fixup (struct link_map *l, ElfW(Word) reloc_offset,
+ ElfW(Addr) retaddr)
+- __attribute__ ((regparm (3), unused));
++ ARCH_FIXUP_ATTRIBUTE;
+ # endif
+
+ /* This code is used in dl-runtime.c to call the `fixup' function
+===================================================================
+--- /home/dank/downloads/glibc-2.3.2/elf/dl-runtime.c Fri Feb 7 11:41:12 2003
++++ glibc-2.3.2/elf/dl-runtime.c Thu Apr 8 22:24:26 2004
+@@ -36,6 +36,12 @@
+ # define VERSYMIDX(sym) (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (sym))
+ #endif
+
++/* The fixup functions might have need special attributes. If none
++ are provided define the macro as empty. */
++#ifndef ARCH_FIXUP_ATTRIBUTE
++# define ARCH_FIXUP_ATTRIBUTE
++#endif
++
+
+ /* This function is called through a special trampoline from the PLT the
+ first time each PLT entry is called. We must perform the relocation
+@@ -45,7 +51,7 @@
+ function. */
+
+ #ifndef ELF_MACHINE_NO_PLT
+-static ElfW(Addr) __attribute_used__
++static ElfW(Addr) __attribute_used__ ARCH_FIXUP_ATTRIBUTE
+ fixup (
+ # ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
+ ELF_MACHINE_RUNTIME_FIXUP_ARGS,
+@@ -132,7 +138,7 @@
+
+ #if !defined PROF && !defined ELF_MACHINE_NO_PLT && !__BOUNDED_POINTERS__
+
+-static ElfW(Addr) __attribute_used__
++static ElfW(Addr) __attribute_used__ ARCH_FIXUP_ATTRIBUTE
+ profile_fixup (
+ #ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
+ ELF_MACHINE_RUNTIME_FIXUP_ARGS,
diff -Naur crosstool-0.28-rc4/patches/glibc-2.3.2/foo crosstool-0.28-rc4h/patches/glibc-2.3.2/foo
--- crosstool-0.28-rc4/patches/glibc-2.3.2/foo Wed Dec 31 16:00:00 1969
+++ crosstool-0.28-rc4h/patches/glibc-2.3.2/foo Thu Apr 8 22:19:45 2004
@@ -0,0 +1,38 @@
+===================================================================
+RCS file: /cvs/glibc/libc/elf/dl-runtime.c,v
+retrieving revision 1.64
+retrieving revision 1.65
+diff -u -r1.64 -r1.65
+--- libc/elf/dl-runtime.c 2004/03/07 05:21:01 1.64
++++ libc/elf/dl-runtime.c 2004/03/09 07:42:59 1.65
+@@ -36,6 +36,12 @@
+ # define VERSYMIDX(sym) (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (sym))
+ #endif
+
++/* The fixup functions might have need special attributes. If none
++ are provided define the macro as empty. */
++#ifndef ARCH_FIXUP_ATTRIBUTE
++# define ARCH_FIXUP_ATTRIBUTE
++#endif
++
+
+ /* This function is called through a special trampoline from the PLT the
+ first time each PLT entry is called. We must perform the relocation
+@@ -46,7 +52,7 @@
+
+ #ifndef ELF_MACHINE_NO_PLT
+ static ElfW(Addr)
+-__attribute ((used, noinline))
++__attribute ((used, noinline)) ARCH_FIXUP_ATTRIBUTE
+ fixup (
+ # ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
+ ELF_MACHINE_RUNTIME_FIXUP_ARGS,
+@@ -122,7 +128,7 @@
+ #if !defined PROF && !defined ELF_MACHINE_NO_PLT && !__BOUNDED_POINTERS__
+
+ static ElfW(Addr)
+-__attribute ((used, noinline))
++__attribute ((used, noinline)) ARCH_FIXUP_ATTRIBUTE
+ profile_fixup (
+ #ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
+ ELF_MACHINE_RUNTIME_FIXUP_ARGS,
--
My technical stuff: http://kegel.com
My politics: see http://www.misleader.org for examples of why I'm for regime change
------
Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
More information about the crossgcc
mailing list