This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: configure: error: compiler support for __thread is required


OK I succeeded in compiling the all thing (I now need to test it but I
already cross-compiled the Linux Kernel).

Here are my changes so far (against crosstool-0.28-rc32):

glibc-2.3.3-remove_gcc_eh.patch should go in patches/glibc-2.3.3
binutils-2.15-solaris-qsort.patch should go in patches/binutils-2.15

getandpatch.sh.patch and crosstool.sh.patch should be applied to
getandpatch.sh and crosstool.sh respectively.

With these I am able to build a ppc7400/linux
2.6.7/gcc3.4.1/glibc2.3.3/binutils 2.15 crostool chain for a
solaris/sparc host

I hope it helps.

JC

On Wed, 2004-08-18 at 06:07, Dan Kegel wrote:
> Ryan.Oliver@pha.com.au wrote:
> >>-lgcc_eh is not needed if you built a static gcc, libgcc_eh.a is only
> >>created when you build a shared gcc.
> >>When built static, all _eh symbols are included in libgcc.a
> >>
> >>Simple fix is to remove -lgcc_eh from the link...
> >>ie: edit Makeconfig
> >>change
> >>  static-gnulib := -lgcc -lgcc_eh
> >>to
> >>  static-gnulib := -lgcc
> > 
> > Oops, gnulib needs changing in Makeconfig too
> > change
> >   gnulib := -lgcc $(libgcc_eh)
> > to
> >   gnulib := -lgcc
> 
> Just that last bit seems like enough.  i.e. apply the 2nd hunk of
>    http://sources.redhat.com/ml/libc-alpha/2003-09/msg00104.html
> I'm starting a build from scratch to see if I've caught all the
> problems.
> - Dan
> p.s.
> I'm starting to find other people affected by this, e.g.
> http://www.rocklinux.net/pipermail/rock-devel/2004-July/000629.html
--- crosstool.sh	2004-07-06 17:43:14.000000000 -0400
+++ crosstool.sh.jcd	2004-08-18 11:26:31.696913000 -0400
@@ -177,6 +177,7 @@
 # autodetect kernel version from contents of Makefile
 KERNEL_VERSION=`awk '/^VERSION =/ { print $3 }' $LINUX_DIR/Makefile`
 KERNEL_PATCHLEVEL=`awk '/^PATCHLEVEL =/ { print $3 }' $LINUX_DIR/Makefile`
+KERNEL_SUBLEVEL=`awk '/^SUBLEVEL =/ { print $3 }' $LINUX_DIR/Makefile`
 
 case "$KERNEL_VERSION.$KERNEL_PATCHLEVEL.x" in
 2.2.x|2.4.x) make ARCH=$ARCH symlinks    include/linux/version.h
@@ -344,7 +345,7 @@
         ${GLIBC_DIR}/configure --prefix=/usr \
 	--build=$BUILD --host=$TARGET \
         ${GLIBC_EXTRA_CONFIG} \
-        --without-tls --without-__thread --enable-kernel=2.4.3 \
+        --without-tls --without-__thread --enable-kernel=${KERNEL_VERSION}.${KERNEL_PATCHLEVEL}.${KERNEL_SUBLEVEL} \
         --without-cvs --disable-profile --disable-debug --without-gd \
         $SHARED_MODE \
         --enable-add-ons${GLIBC_ADDON_OPTIONS} --with-headers=$HEADERDIR
--- getandpatch.sh	2004-07-03 17:27:22.000000000 -0400
+++ getandpatch.sh.jcd	2004-08-18 11:26:42.506970000 -0400
@@ -180,6 +180,9 @@
 getUnpackAndPatch     ftp://ftp.gnu.org/pub/gnu/glibc/$GLIBCTHREADS_FILENAME.tar.bz2 ftp://ftp.gnu.org/pub/gnu/glibc/$GLIBCTHREADS_FILENAME.tar.gz
 test x$GLIBCCRYPT_FILENAME = x || getUnpackAndPatch     ftp://ftp.gnu.org/pub/gnu/glibc/$GLIBCCRYPT_FILENAME.tar.gz ftp://ftp.gnu.org/pub/gnu/glibc/$GLIBCCRYPT_FILENAME.tar.bz2
 
+#remove NTPL for now
+rm -rf $SRC_DIR/$GLIBC_DIR/nptl*
+
 # gcc's contrib/test_summary expects version stamp, normally created by contrib/update_gcc
 test -f $SRC_DIR/$GCC_DIR/LAST_UPDATED || echo $GCC_DIR > $SRC_DIR/$GCC_DIR/LAST_UPDATED
 
--- src/bfd/elflink.c.org	2004-07-05 09:11:42.920597000 -0400
+++ src/bfd/elflink.c	2004-07-05 09:12:59.240847000 -0400
@@ -2700,7 +2700,7 @@
     return vdiff > 0 ? 1 : -1;
   else
     {
-      long sdiff = h1->root.u.def.section - h2->root.u.def.section;
+      long sdiff = h1->root.u.def.section->id - h2->root.u.def.section->id;
       if (sdiff != 0)
 	return sdiff > 0 ? 1 : -1;
     }
@@ -3954,7 +3954,7 @@
 		i = idx + 1;
 	      else
 		{
-		  long sdiff = slook - h->root.u.def.section;
+		  long sdiff = slook->id - h->root.u.def.section->id;
 		  if (sdiff < 0)
 		    j = idx;
 		  else if (sdiff > 0)
--- glibc-2.3.3/Makeconfig.old  2004-05-17 13:53:46.000000000 -0700
+++ glibc-2.3.3/Makeconfig      2004-05-17 14:09:59.000000000 -0700
@@ -505,7 +505,7 @@ link-libc-bounded = $(common-objpfx)libc
 link-extra-libs-bounded = $(foreach lib,$(LDLIBS-$(@F:%-bp=%)),$(common-objpfx)$(lib)_b.a)
 
 ifndef gnulib
-gnulib := -lgcc -lgcc_eh
+gnulib := -lgcc
 endif
 ifeq ($(elf),yes)
 +preinit = $(addprefix $(csu-objpfx),crti.o)

------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]