https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95549

            Bug ID: 95549
           Summary: [9/10/11 regression] gnat1 doesn't link on AIX
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: ada
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ro at gcc dot gnu.org
  Target Milestone: ---
            Target: powerpc-ibm-aix7.2.0.0, powerpc-ibm-aix7.1.3.0

I've been trying to get a working GNAT on AIX 7.  Starting with old GNAT
binaries
from GCC .1.0 for AIX 5.2, I went via GCC 4.7.4 and GCC 8.4.0, where the builds
succeeded with minor issues.  However, in all of GCC 9.3.0, 10.1.0, and current
master, gnat1 fails to link in stage 1:

$ g++ -std=gnu++98 -no-pie -g -DIN_GCC -fno-exceptions -fno-rtti
-fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings
-Wcast-qual -Wno-format -Wmissing-format-attribute -Woverloaded-virtual
-pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings
-fno-common -DHAVE_CONFIG_H -static-libstdc++ -static-libgcc -Wl,-bbigtoc
-Wl,-bmaxdata:0x40000000 -o gnat1 ada/adadecode.o ada/adaint.o ada/argv.o
ada/cio.o ada/cstreams.o ada/env.o ada/init.o ada/initialize.o ada/raise.o
ada/raise-gcc.o ada/seh_init.o ada/targext.o ada/cuintp.o ada/decl.o
ada/rtfinal.o ada/rtinit.o ada/misc.o ada/utils.o ada/utils2.o ada/trans.o
ada/targtyps.o ada/libgnat/a-charac.o ada/libgnat/a-chlat1.o
ada/libgnat/a-elchha.o ada/libgnat/a-except.o ada/libgnat/a-exctra.o
ada/libgnat/a-ioexce.o ada/libgnat/ada.o ada/spark_xrefs.o ada/ali.o
ada/alloc.o ada/aspects.o ada/atree.o ada/butil.o ada/casing.o ada/checks.o
ada/comperr.o ada/contracts.o ada/csets.o ada/cstand.o ada/debug.o
ada/debug_a.o ada/einfo.o ada/elists.o ada/err_vars.o ada/errout.o
ada/erroutc.o ada/eval_fat.o ada/exp_aggr.o ada/exp_spark.o ada/exp_atag.o
ada/exp_attr.o ada/exp_cg.o ada/exp_ch11.o ada/exp_ch12.o ada/exp_ch13.o
ada/exp_ch2.o ada/exp_ch3.o ada/exp_ch4.o ada/exp_ch5.o ada/exp_ch6.o
ada/exp_ch7.o ada/exp_ch8.o ada/exp_ch9.o ada/exp_code.o ada/exp_dbug.o
ada/exp_disp.o ada/exp_dist.o ada/exp_fixd.o ada/exp_imgv.o ada/exp_intr.o
ada/exp_pakd.o ada/exp_prag.o ada/exp_sel.o ada/exp_smem.o ada/exp_strm.o
ada/exp_tss.o ada/exp_unst.o ada/exp_util.o ada/expander.o ada/fmap.o
ada/fname-uf.o ada/fname.o ada/freeze.o ada/frontend.o ada/libgnat/g-byorma.o
ada/libgnat/g-dynhta.o ada/libgnat/g-hesora.o ada/libgnat/g-htable.o
ada/libgnat/g-lists.o ada/libgnat/g-sets.o ada/libgnat/g-spchge.o
ada/libgnat/g-speche.o ada/libgnat/g-u3spch.o ada/get_targ.o ada/ghost.o
ada/libgnat/gnat.o ada/gnatvsn.o ada/hostparm.o ada/impunit.o ada/inline.o
ada/libgnat/interfac.o ada/itypes.o ada/krunch.o ada/layout.o ada/lib-load.o
ada/lib-util.o ada/lib-writ.o ada/lib-xref.o ada/lib.o ada/live.o
ada/namet-sp.o ada/namet.o ada/nlists.o ada/nmake.o ada/opt.o ada/osint-c.o
ada/osint.o ada/output.o ada/par.o ada/par_sco.o ada/prep.o ada/prepcomp.o
ada/put_scos.o ada/repinfo.o ada/restrict.o ada/rident.o ada/rtsfind.o
ada/libgnat/s-addope.o ada/libgnat/s-addima.o ada/libgnat/s-assert.o
ada/libgnat/s-bitops.o ada/libgnat/s-carun8.o ada/libgnat/s-casuti.o
ada/libgnat/s-conca2.o ada/libgnat/s-conca3.o ada/libgnat/s-conca4.o
ada/libgnat/s-conca5.o ada/libgnat/s-conca6.o ada/libgnat/s-conca7.o
ada/libgnat/s-conca8.o ada/libgnat/s-conca9.o ada/libgnat/s-crc32.o
ada/libgnat/s-crtl.o ada/libgnat/s-excdeb.o ada/libgnat/s-except.o
ada/libgnat/s-exctab.o ada/libgnat/s-excmac.o ada/libgnat/s-htable.o
ada/libgnat/s-imenne.o ada/libgnat/s-imgenu.o ada/libgnat/s-imgint.o
ada/libgnat/s-mastop.o ada/libgnat/s-memory.o ada/libgnat/s-os_lib.o
ada/libgnat/s-parame.o ada/libgnat/s-purexc.o ada/libgnat/s-restri.o
ada/libgnat/s-secsta.o ada/libgnat/s-soflin.o ada/libgnat/s-soliin.o
ada/libgnat/s-sopco3.o ada/libgnat/s-sopco4.o ada/libgnat/s-sopco5.o
ada/libgnat/s-stache.o ada/libgnat/s-stalib.o ada/libgnat/s-stoele.o
ada/libgnat/s-strcom.o ada/libgnat/s-strhas.o ada/libgnat/s-string.o
ada/libgnat/s-strops.o ada/libgnat/s-traceb.o ada/libgnat/s-traent.o
ada/libgnat/s-trasym.o ada/libgnat/s-unstyp.o ada/libgnat/s-utf_32.o
ada/libgnat/s-valint.o ada/libgnat/s-valuns.o ada/libgnat/s-valuti.o
ada/libgnat/s-wchcnv.o ada/libgnat/s-wchcon.o ada/libgnat/s-wchjis.o
ada/libgnat/s-wchstw.o ada/scans.o ada/scil_ll.o ada/scn.o ada/scng.o
ada/scos.o ada/sdefault.o ada/sem.o ada/sem_aggr.o ada/sem_attr.o ada/sem_aux.o
ada/sem_case.o ada/sem_cat.o ada/sem_ch10.o ada/sem_ch11.o ada/sem_ch12.o
ada/sem_ch13.o ada/sem_ch2.o ada/sem_ch3.o ada/sem_ch4.o ada/sem_ch5.o
ada/sem_ch6.o ada/sem_ch7.o ada/sem_ch8.o ada/sem_ch9.o ada/sem_dim.o
ada/sem_disp.o ada/sem_dist.o ada/sem_elab.o ada/sem_elim.o ada/sem_eval.o
ada/sem_intr.o ada/sem_mech.o ada/sem_prag.o ada/sem_res.o ada/sem_scil.o
ada/sem_smem.o ada/sem_spark.o ada/sem_type.o ada/sem_util.o ada/sem_warn.o
ada/set_targ.o ada/sinfo-cn.o ada/sinfo.o ada/sinput-d.o ada/sinput-l.o
ada/sinput.o ada/snames.o ada/sprint.o ada/stand.o ada/stringt.o ada/style.o
ada/styleg.o ada/stylesw.o ada/switch-c.o ada/switch.o ada/libgnat/system.o
ada/table.o ada/targparm.o ada/tbuild.o ada/tree_gen.o ada/tree_in.o
ada/tree_io.o ada/treepr.o ada/treeprs.o ada/ttypes.o ada/types.o ada/uintp.o
ada/uname.o ada/urealp.o ada/usage.o ada/validsw.o ada/warnsw.o ada/widechar.o
ada/back_end.o ada/gnat1drv.o ada/b_gnat1.o libbackend.a main.o
libcommon-target.a libcommon.a ../libcpp/libcpp.a
../libdecnumber/libdecnumber.a attribs.o \
  libcommon-target.a libcommon.a ../libcpp/libcpp.a -lintl -liconv
../libbacktrace/.libs/libbacktrace.a ../libiberty/libiberty.a
../libdecnumber/libdecnumber.a    -L/opt/cfarm/gmp-latest/lib
-L/opt/cfarm/mpfr-latest/lib -L/opt/cfarm/mpc-latest/lib -lmpc -lmpfr -lgmp  
-L./../zlib -lz -g
ld: 0711-317 ERROR: Undefined symbol: vtable for range_label_for_type_mismatch
ld: 0711-317 ERROR: Undefined symbol:
.range_label_for_type_mismatch::get_text(unsigned int) const
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
collect2: error: ld returned 8 exit status

With -Wl,-bnoquiet, I see:

[...]
(ld): er full
ld: 0711-318 ERROR: Undefined symbols were found.
        The following symbols are in error:
 Symbol                    Inpndx  TY CL Source-File(Object-File) OR
Import-File{Shared-object}
                              RLD: Address  Section  Rld-type Referencing
Symbol

----------------------------------------------------------------------------------------------
 vtable for range_label_for_type_mismatch [52]    ER PR
/home/ro/gcc/src/gcc-9.3.0/gcc/gcc-rich-location.c(libbackend.a[gcc-rich-location.o])
                                   00002570 .data    R_POS    [1919] 
<_ZTV29range_label_for_type_mismatch.P8>
 .range_label_for_type_mismatch::get_text(unsigned int) const [86]    ER PR
/home/ro/gcc/src/gcc-9.3.0/gcc/gcc-rich-location.c(libbackend.a[gcc-rich-location.o])
                                   00000c68 .text    R_RBR    [1523] 
.maybe_range_label_for_tree_type_mismatch::get_text(unsigned int) const
ER: The return code is 8.

Reply via email to