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

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
OK, so besides the relocation issue it seems that search paths (or install
paths) are wrong (because of my changes?).  Configuring with
--prefix=/tmp/install and doing

> /tmp/install/bin/gm2 -fiso coroutine.mod   
<built-in>: error: the file containing the definition module 'SYSTEM' cannot be
found

because adding -v reveals

 /tmp/install/lib/gcc/x86_64-pc-linux-gnu/13.0.1/cc1gm2
-iplugindir=/tmp/install/lib64/gcc/x86_64-pc-linux-gnu/13.0.1/plugin -quiet
-dumpdir a- -dumpbase coroutine.mod -dumpbase-ext .mod -mtune=generic
-march=x86-64 -version -fiso -fgen-module-list=- -fplugin=m2rte -fiso
-fgen-module-list=- -fplugin=m2rte -I
/tmp/install/lib64/gcc/x86_64-pc-linux-gnu/13.0.1/m2/m2iso -I
/tmp/install/lib64/gcc/x86_64-pc-linux-gnu/13.0.1/m2/m2pim -v coroutine.mod -o
/tmp/ccwuuAId.s

but

> find install -iname system.mod
install/lib64/m2/m2pim/SYSTEM.mod
install/lib64/m2/m2iso/SYSTEM.mod
install/lib64/m2/m2cor/SYSTEM.mod
install/lib64/m2/m2min/SYSTEM.mod
install/lib/m2/m2pim/SYSTEM.mod
install/lib/m2/m2iso/SYSTEM.mod
install/lib/m2/m2cor/SYSTEM.mod
install/lib/m2/m2min/SYSTEM.mod

so the frontend/driver expect the m2/m2{pim,iso,cor,min} dirs to be in
a version specific directory.

libgfortran for example uses

cafexeclib_LTLIBRARIES = libcaf_single.la
cafexeclibdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR)

my r13-5284-ge61d43791e0943 changed

-       $(INSTALL_DATA) .libs/libm2iso.a
$(DESTDIR)$(inst_libdir)/$(MULTIDIR)$(M2LIBDIR)
+       $(INSTALL_DATA) .libs/libm2iso.la
$(DESTDIR)$(toolexeclibdir)$(M2LIBDIR)

fighting a duplicate MULTIDIR, maybe I should have just removed $(MULTIDIR)
here, inst_libdir is

libsubdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)
inst_libdir = $(libsubdir)$(MULTISUBDIR)

which looks possibly correct.  I'm going to test that.

Reply via email to