[Bug fortran/71796] New: Link error referencing compiler generated symbol __vtab_xxx
ian_harvey at bigpond dot com
gcc-bugzilla@gcc.gnu.org
Thu Jul 7 12:38:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71796
Bug ID: 71796
Summary: Link error referencing compiler generated symbol
__vtab_xxx
Product: gcc
Version: 7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: ian_harvey at bigpond dot com
Target Milestone: ---
Created attachment 38853
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38853&action=edit
Reduced test case program exhibiting the link error
With recent trunk (r238061) The attached program fails to link with undefined
references to `__vtab_ma_Ta.3481`, which appears to be an internally generated
symbol related to the compiler's support for polymorphism.
The error disappears if the order of the USE statements is changed in one of
the scopes as indicated in the test case. USE statement ordering in a scope is
not supposed to affect source semantics.
$ gfortran -v vtab-link-error.f90
Driving: gfortran -v vtab-link-error.f90 -l gfortran -l m -shared-libgcc
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=/home/MEGMS2/ian/usr/gcc-7.0.0/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: .././src/configure --prefix=/home/MEGMS2/ian/usr/gcc-7.0.0
--enable-languages=c,c++,fortran --enable-libgomp --enable-checking=release :
(reconfigured) .././src/configure --prefix=/home/MEGMS2/ian/usr/gcc-7.0.0
--enable-libgomp --enable-checking=release --enable-languages=c,c++,fortran,lto
--no-create --no-recursion
Thread model: posix
gcc version 7.0.0 20160706 (experimental) (GCC)
COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
/home/MEGMS2/ian/usr/gcc-7.0.0/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/f951
vtab-link-error.f90 -quiet -dumpbase vtab-link-error.f90 -mtune=generic
-march=x86-64 -auxbase vtab-link-error -version -fintrinsic-modules-path
/home/MEGMS2/ian/usr/gcc-7.0.0/lib/gcc/x86_64-pc-linux-gnu/7.0.0/finclude -o
/tmp/cca44wnw.s
GNU Fortran (GCC) version 7.0.0 20160706 (experimental) (x86_64-pc-linux-gnu)
compiled by GNU C version 7.0.0 20160706 (experimental), GMP version
6.1.0, MPFR version 3.1.4, MPC version 1.0.2, isl version none
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU Fortran2008 (GCC) version 7.0.0 20160706 (experimental)
(x86_64-pc-linux-gnu)
compiled by GNU C version 7.0.0 20160706 (experimental), GMP version
6.1.0, MPFR version 3.1.4, MPC version 1.0.2, isl version none
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
as -v --64 -o /tmp/ccnjfNd7.o /tmp/cca44wnw.s
GNU assembler version 2.26 (x86_64-redhat-linux) using BFD version version
2.26.20160125
Reading specs from
/home/MEGMS2/ian/usr/gcc-7.0.0/lib/gcc/x86_64-pc-linux-gnu/7.0.0/../../../../lib64/libgfortran.spec
rename spec lib to liborig
COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
COMPILER_PATH=/home/MEGMS2/ian/usr/gcc-7.0.0/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/:/home/MEGMS2/ian/usr/gcc-7.0.0/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/:/home/MEGMS2/ian/usr/gcc-7.0.0/libexec/gcc/x86_64-pc-linux-gnu/:/home/MEGMS2/ian/usr/gcc-7.0.0/lib/gcc/x86_64-pc-linux-gnu/7.0.0/:/home/MEGMS2/ian/usr/gcc-7.0.0/lib/gcc/x86_64-pc-linux-gnu/
LIBRARY_PATH=/home/MEGMS2/ian/usr/gcc-7.0.0/lib/gcc/x86_64-pc-linux-gnu/7.0.0/:/home/MEGMS2/ian/usr/gcc-7.0.0/lib/gcc/x86_64-pc-linux-gnu/7.0.0/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/home/MEGMS2/ian/usr/gcc-7.0.0/lib/gcc/x86_64-pc-linux-gnu/7.0.0/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
/home/MEGMS2/ian/usr/gcc-7.0.0/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/collect2
-plugin
/home/MEGMS2/ian/usr/gcc-7.0.0/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/liblto_plugin.so
-plugin-opt=/home/MEGMS2/ian/usr/gcc-7.0.0/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/lto-wrapper
-plugin-opt=-fresolution=/tmp/cc1JOD5H.res -plugin-opt=-pass-through=-lgcc_s
-plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath
-plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lgcc_s
-plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc
-plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc
--eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2
/lib/../lib64/crt1.o /lib/../lib64/crti.o
/home/MEGMS2/ian/usr/gcc-7.0.0/lib/gcc/x86_64-pc-linux-gnu/7.0.0/crtbegin.o
-L/home/MEGMS2/ian/usr/gcc-7.0.0/lib/gcc/x86_64-pc-linux-gnu/7.0.0
-L/home/MEGMS2/ian/usr/gcc-7.0.0/lib/gcc/x86_64-pc-linux-gnu/7.0.0/../../../../lib64
-L/lib/../lib64 -L/usr/lib/../lib64
-L/home/MEGMS2/ian/usr/gcc-7.0.0/lib/gcc/x86_64-pc-linux-gnu/7.0.0/../../..
/tmp/ccnjfNd7.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc
-lgcc_s -lgcc
/home/MEGMS2/ian/usr/gcc-7.0.0/lib/gcc/x86_64-pc-linux-gnu/7.0.0/crtend.o
/lib/../lib64/crtn.o
/tmp/ccnjfNd7.o: In function `__mc_MOD_subc':
vtab-link-error.f90:(.text+0x17): undefined reference to `__vtab_ma_Ta.3481'
vtab-link-error.f90:(.text+0x96): undefined reference to `__vtab_ma_Ta.3481'
collect2: error: ld returned 1 exit status
More information about the Gcc-bugs
mailing list