Mike,
    I managed to suppress the linker warnings which occur with "-m64 -g" with 
COMMON blocks
by applying the following patch...

--- gcc-4.2-20060822/gcc/testsuite/lib/prune.exp.org    2006-08-23 
18:33:56.000000000 -0400
+++ gcc-4.2-20060822/gcc/testsuite/lib/prune.exp        2006-08-23 
18:41:28.000000000 -0400
@@ -43,6 +43,7 @@
     regsub -all "(^|\n)\[^\n\]*file path prefix \[^\n\]* never used" $text "" 
text
     regsub -all "(^|\n)\[^\n\]*linker input file unused since linking not 
done" $text "" text
 
+    regsub -all "(^|\n)can't find atom for N_GSYM stabs \[^\n\]* in \[^\n\]*" 
$text "" text
     #send_user "After:$text\n"
 
     return $text

Running the fortran testsuite for -m64 now produces...

Native configuration is powerpc-apple-darwin8

                === gfortran tests ===


Running target unix/-m64
FAIL: gfortran.dg/direct_io_6.f90  -O0  execution test
FAIL: gfortran.dg/direct_io_6.f90  -O1  execution test
FAIL: gfortran.dg/direct_io_6.f90  -O2  execution test
FAIL: gfortran.dg/direct_io_6.f90  -O3 -fomit-frame-pointer  execution test
FAIL: gfortran.dg/direct_io_6.f90  -O3 -fomit-frame-pointer -funroll-loops  
execution test
FAIL: gfortran.dg/direct_io_6.f90  -O3 -fomit-frame-pointer -funroll-all-loops 
-finline-functions  execution test
FAIL: gfortran.dg/direct_io_6.f90  -O3 -g  execution test
FAIL: gfortran.dg/direct_io_6.f90  -Os  execution test
FAIL: gfortran.dg/large_real_kind_2.F90  -O0  execution test
FAIL: gfortran.dg/large_real_kind_2.F90  -O1  execution test
FAIL: gfortran.dg/large_real_kind_2.F90  -O2  execution test
FAIL: gfortran.dg/large_real_kind_2.F90  -O3 -fomit-frame-pointer  execution 
test
FAIL: gfortran.dg/large_real_kind_2.F90  -O3 -fomit-frame-pointer 
-funroll-loops  execution test
FAIL: gfortran.dg/large_real_kind_2.F90  -O3 -fomit-frame-pointer 
-funroll-all-loops -finline-functions  execution test
FAIL: gfortran.dg/large_real_kind_2.F90  -O3 -g  execution test
FAIL: gfortran.dg/large_real_kind_2.F90  -Os  execution test
FAIL: gfortran.dg/large_real_kind_form_io_2.f90  -O0  execution test
FAIL: gfortran.dg/large_real_kind_form_io_2.f90  -O1  execution test
FAIL: gfortran.dg/large_real_kind_form_io_2.f90  -O2  execution test
FAIL: gfortran.dg/large_real_kind_form_io_2.f90  -O3 -fomit-frame-pointer  
execution test
FAIL: gfortran.dg/large_real_kind_form_io_2.f90  -O3 -fomit-frame-pointer 
-funroll-loops  execution test
FAIL: gfortran.dg/large_real_kind_form_io_2.f90  -O3 -fomit-frame-pointer 
-funroll-all-loops -finline-functions  execution test
FAIL: gfortran.dg/large_real_kind_form_io_2.f90  -O3 -g  execution test
FAIL: gfortran.dg/large_real_kind_form_io_2.f90  -Os  execution test
XPASS: gfortran.dg/vect/vect-5.f90  -O  scan-tree-dump-times vectorized 2 loops 
1
XPASS: gfortran.dg/vect/vect-5.f90  -O  scan-tree-dump-times Alignment of 
access forced using peeling 1
XPASS: gfortran.dg/vect/vect-5.f90  -O  scan-tree-dump-times Vectorizing an 
unaligned access 2

                === gfortran Summary ===

# of expected passes            14020
# of unexpected failures        24
# of unexpected successes       3
# of expected failures          7
# of unsupported tests          41
/sw/src/fink.build/gcc4-4.1.999-20060822/darwin_objdir/gcc/testsuite/gfortran/../../gfortran
  version 4.2.0 20060822 (experimental)


Compiler version: 4.2.0 20060822 (experimental) gfortran 
Platform: powerpc-apple-darwin8
configure flags: --prefix=/sw --prefix=/sw/lib/gcc4 
--enable-languages=c,c++,fortran --infodir=/sw/lib/gcc4/share/info 
--with-gmp=/sw --with-included-gettext --host=powerpc-apple-darwin8 
--with-as=/sw/lib/odcctools/bin/as --with-ld=/sw/lib/odcctools/bin/ld 
--with-nm=/sw/lib/odcctools/bin/nm,;t t

...which is quite nice since it is the same number of failures as with -m32 
with three additional unexpected passes.
    I decided to look at one other issue (with the gdb from Xcode 2.3). I built 
a small test program...

      program test
      integer i
      common i
      i=1248
      i=2359
      i=3460
      end

...with "-O3 -m64 -g" (which produces the linker warning) to see if I could 
actually see the
contents of the i variable in gdb when it was in a common block. What I found 
was that I
could set a breakpoint at assign.f90:1 but when I tried to run the program the 
break point
wasn't honored. At first I though this was due to the common block so I 
commented it out.
However, that code built at "-O3 -m64 -g", without linker errors, didn't 
produce a usable
breakpoint which actually worked. I checked both versions of the test program 
with a -m32
build and the breakpoint worked. Do I need Xcode 2.4 for a 64-bit saavy gdb or 
do I need
to build from the gdb cvs to have usable breakpoints in fortran code on 64-bit 
Darwin?
               Jack


Reply via email to