This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


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: libgomp bootstrap failure on i486-linux with --enable-targets=all


Jakub Jelinek writes:
> On Tue, Dec 12, 2006 at 03:29:04PM +0100, Matthias Klose wrote:
> > current trunk, configured for --enable-targets=all i486-linux-gnu
> > fails to build in libgomp, calling -m64 -arch=i486.  The applied patch
> > only adds these flags when not building for -m64.
> > 
> > Are the i486 specific flags needed at all now that the default is to
> > tune for generic?
> 
> The important part is -march=i486 and that is needed.  Without that cmpxchg
> can't be used.
> 
> > --- libgomp/testsuite/lib/libgomp-dg.exp.orig	2006-04-10 23:23:11.000000000 +0200
> > +++ libgomp/testsuite/lib/libgomp-dg.exp	2006-10-01 13:47:01.955690500 +0200
> > @@ -130,9 +130,10 @@
> >      }
> >  
> >      # We use atomic operations in the testcases to validate results.
> > -    if [istarget i?86-*-*] {
> > -	lappend ALWAYS_CFLAGS "additional_flags=-march=i486"
> > -    }
> > +    # Debian: configured for i486, breaks testsuite with -m64.
> > +    #if [istarget i?86-*-*] {
> > +    #	lappend ALWAYS_CFLAGS "additional_flags=-march=i486"
> > +    #}
> 
> This part of the patch is wrong.

updated patch attached. libgomp testsuite shows no failures with
RUNTESTFLAGS='--target_board=unix\{-m64,\}' make check. ok to checkin?

  Matthias

2006-12-12  Matthias Klose  <doko@debian.org>

        * configure.tgt (i[456]86-*-linux*): Only add ia32 specific
        flags if not building with -m64.
        * testsuite/lib/libgomp-dg.exp (libgomp_init): Don't add -march
        flag for i?86-*-* targets, if current target matches -m64.


Index: libgomp/configure.tgt
===================================================================
--- libgomp/configure.tgt	(revision 119778)
+++ libgomp/configure.tgt	(working copy)
@@ -49,9 +49,14 @@
     # Note that bare i386 is not included here.  We need cmpxchg.
     i[456]86-*-linux*)
 	config_path="linux/x86 linux posix"
-	if test -z "$with_arch"; then
-	  XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
-	fi
+	case " ${CC} ${CFLAGS} " in
+	  *" -m64 "*)
+	    ;;
+	  *)
+	    if test -z "$with_arch"; then
+	      XCFLAGS="${XCFLAGS} -march=i486 -mtune=i686"
+	    fi
+	esac
 	;;
 
     # Similar jiggery-pokery for x86_64 multilibs, except here we
Index: libgomp/testsuite/lib/libgomp-dg.exp
===================================================================
--- libgomp/testsuite/lib/libgomp-dg.exp	(revision 119778)
+++ libgomp/testsuite/lib/libgomp-dg.exp	(working copy)
@@ -57,6 +57,7 @@
     global lang_test_file
     global lang_library_path
     global lang_link_flags
+    global current_target_name
 
     set blddir [lookfor_file [get_multilibs] libgomp]
 
@@ -130,7 +131,7 @@
     }
 
     # We use atomic operations in the testcases to validate results.
-    if [istarget i?86-*-*] {
+    if { [istarget i?86-*-*] && [string match *-m64* $current_target_name] == -1} {
 	lappend ALWAYS_CFLAGS "additional_flags=-march=i486"
     }
     if [istarget sparc*-*-*] {


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