This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
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*-*-*] {