[go: nahoru, domu]

Bug 95549 - [11/12/13/14/15 regression] gnat1 doesn't link on AIX
Summary: [11/12/13/14/15 regression] gnat1 doesn't link on AIX
Status: NEW
Alias: None
Product: gcc
Classification: Unclassified
Component: ada (show other bugs)
Version: 11.0
: P3 normal
Target Milestone: 11.5
Assignee: Not yet assigned to anyone
URL:
Keywords: build
Depends on:
Blocks:
 
Reported: 2020-06-05 08:39 UTC by Rainer Orth
Modified: 2024-04-26 10:37 UTC (History)
3 users (show)

See Also:
Host:
Target: powerpc-ibm-aix7.2.0.0, powerpc-ibm-aix7.1.3.0
Build:
Known to work:
Known to fail:
Last reconfirmed: 2021-01-14 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Rainer Orth 2020-06-05 08:39:11 UTC
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.
Comment 1 Richard Biener 2021-01-14 08:59:20 UTC
Is this still a problem?
Comment 2 ro@CeBiTec.Uni-Bielefeld.DE 2021-01-14 09:23:57 UTC
> --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
> Is this still a problem?

It was when I last tried in December (cf. PR ada/98171, last two lines).
Comment 3 David Edelsohn 2021-04-27 20:41:46 UTC
I don't know why the vtable is not emitted.  It seems that it should be in gcc-rich-location.o. This could be a situation of a conflict between a symbol label and a symbol qualname.  The AIX backend has special code to try to handle it.  I'm unsure why it's failing for gnat1 and not other languages.
Comment 4 Richard Biener 2021-06-01 08:17:47 UTC
GCC 9.4 is being released, retargeting bugs to GCC 9.5.
Comment 5 Richard Biener 2022-05-27 09:42:53 UTC
GCC 9 branch is being closed
Comment 6 Jakub Jelinek 2022-06-28 10:40:58 UTC
GCC 10.4 is being released, retargeting bugs to GCC 10.5.
Comment 7 Richard Biener 2023-07-07 10:37:38 UTC
GCC 10 branch is being closed.