This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: [Patch,fortran] PR 27740 Symbol versioning for libgfortran
- From: Steve Kargl <sgk at troutmask dot apl dot washington dot edu>
- To: FX Coudert <fxcoudert at gmail dot com>
- Cc: Janne Blomqvist <Janne dot Blomqvist at tkk dot fi>, gfortran <fortran at gcc dot gnu dot org>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Sun, 5 Nov 2006 20:26:40 -0800
- Subject: Re: [Patch,fortran] PR 27740 Symbol versioning for libgfortran
- References: <454C89C3.2080106@tkk.fi> <C8979769-0E82-472D-8F10-4DACE971FD06@gmail.com>
On Sun, Nov 05, 2006 at 10:20:03AM +0100, FX Coudert wrote:
> >the attached patch implements symbol versioning for libgfortran. At
> >the same time it does some namespace cleanup, so that all the
> >exported symbols have names beginning with _gfortran_.
>
> For those who would like to test it on non-linux platforms (and
> they're welcome, the more the merrier), please find attached complete
> diff (gzipped), including the new gfortran.map file and all the
> regenerated files. I'll be testing it on i386-mingw, I think having
> someone testing it on cygwin would be nice also.
>
> PS: Janne, any reason why the map file is called gfortran.map, and
> not libgfortran.map?
>
I applied this gzipped patch and see multiple testsuite regressions.
=== gfortran Summary ===
# of expected passes 14828
# of unexpected failures 32
# of expected failures 7
# of untested testcases 16
# of unsupported tests 80
/usr/home/kargl/gcc/obj/gcc/testsuite/gfortran/../../gfortran version 4.3.0 20061105 (experimental)
FAIL: gfortran.dg/csqrt_2.f -O0 (test for excess errors)
Excess errors:
: undefined reference to `csqrtf'
: undefined reference to `csqrtf'
FAIL: gfortran.dg/f2c_2.f90 -O0 (test for excess errors)
Excess errors:
: undefined reference to `csqrtf'
: undefined reference to `csqrt'
FAIL: gfortran.fortran-torture/execute/csqrt_1.f90 compilation, -O0
UNTESTED: gfortran.fortran-torture/execute/csqrt_1.f90 execution, -O0
Executing on host: /usr/home/kargl/gcc/obj/gcc/testsuite/gfortran/../../gfortran
-B/usr/home/kargl/gcc/obj/gcc/testsuite/gfortran/../../ /usr/home/kargl/gcc/gcc
4x/gcc/testsuite/gfortran.fortran-torture/execute/csqrt_1.f90 -w -O1 -L/usr/
home/kargl/gcc/obj/i386-unknown-freebsd7.0/./libgfortran/.libs -L/usr/home/kargl
/gcc/obj/i386-unknown-freebsd7.0/./libgfortran/.libs -L/usr/home/kargl/gcc/obj/i
386-unknown-freebsd7.0/./libiberty -lm -o /usr/home/kargl/gcc/obj/gcc/testsui
te/gfortran/csqrt_1.x (timeout = 300)
/usr/tmp/cco3lP8n.o(.text+0x3b2): In function `square_root_':
: undefined reference to `csqrtf'
/usr/tmp/cco3lP8n.o(.text+0x3fa): In function `square_root_':
: undefined reference to `csqrtf'
collect2: ld returned 1 exit status
compiler exited with status 1
FAIL: gfortran.fortran-torture/execute/power.f90 compilation, -O0
UNTESTED: gfortran.fortran-torture/execute/power.f90 execution, -O0
Executing on host: /usr/home/kargl/gcc/obj/gcc/testsuite/gfortran/../../gfortran
-B/usr/home/kargl/gcc/obj/gcc/testsuite/gfortran/../../ /usr/home/kargl/gcc/gcc
4x/gcc/testsuite/gfortran.fortran-torture/execute/power.f90 -w -O1 -L/usr/ho
me/kargl/gcc/obj/i386-unknown-freebsd7.0/./libgfortran/.libs -L/usr/home/kargl/g
cc/obj/i386-unknown-freebsd7.0/./libgfortran/.libs -L/usr/home/kargl/gcc/obj/i38
6-unknown-freebsd7.0/./libiberty -lm -o /usr/home/kargl/gcc/obj/gcc/testsuite
/gfortran/power.x (timeout = 300)
/usr/tmp/ccVC5C7R.o(.text+0x189): In function `MAIN__':
: undefined reference to `cpowf'
collect2: ld returned 1 exit status
compiler exited with status 1
output is:
/usr/tmp/ccVC5C7R.o(.text+0x189): In function `MAIN__':
: undefined reference to `cpowf'
collect2: ld returned 1 exit status
FreeBSD should be picking up csqrtf et al from c99_intrinsics.c. It
seems that the patch is corrupting the HAVE_CSQRTF macro. I'll
applied Janne's patch tommorrow and configure with maintainer-mode.
--
Steve