Bug 88591 - [9 regression] libada install fails with --enable-shared
Summary: [9 regression] libada install fails with --enable-shared
Status: RESOLVED INVALID
Alias: None
Product: gcc
Classification: Unclassified
Component: ada (show other bugs)
Version: 9.0
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-12-25 08:25 UTC by jamespharvey20
Modified: 2018-12-29 03:46 UTC (History)
2 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2018-12-25 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description jamespharvey20 2018-12-25 08:25:03 UTC
git commit 40caaded caises "make ada-install-{common,info}" to fail.

NOTE the first error is about halfway through the output below, with:

 /usr/bin/install: cannot stat 'gnatdll': No such file or directory

Then, later:

 cp: cannot stat 'rts/standard.ads.h': No such file or directory

I didn't narrow it down to see if "--enable-shared" was necessary to cause the failure, or if "--disable-shared" would replicate the install failure as well.  Looks to me like it should be easy to fix given this output, but let me know if you'd need further testing on my end.

Using standard Arch Linux configure:

----------------------------------------

configure --prefix=/usr \
      --libdir=/usr/lib \
      --libexecdir=/usr/lib \
      --mandir=/usr/share/man \
      --infodir=/usr/share/info \
      --with-bugurl=https://bugs.archlinux.org/ \
      --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ \
      --enable-shared \
      --enable-threads=posix \
      --with-system-zlib \
      --with-isl \
      --enable-__cxa_atexit \
      --disable-libunwind-exceptions \
      --enable-clocale=gnu \
      --disable-libstdcxx-pch \
      --disable-libssp \
      --enable-gnu-unique-object \
      --enable-linker-build-id \
      --enable-lto \
      --enable-plugin \
      --enable-install-libiberty \
      --with-linker-hash-style=gnu \
      --enable-gnu-indirect-function \
      --enable-multilib \
      --disable-werror \
      --enable-checking=release \
      --enable-default-pie \
      --enable-default-ssp \
      --enable-cet=auto

----------------------------------------

"make ada-install-{common,info}" fails with:

----------------------------------------

mkdir -p /build/gcc-git/pkg/gcc-ada-git/usr/bin
if [ -f gnat1 ] ; \
then \
  for tool in gnatbind gnatchop gnat gnatkr gnatlink gnatls gnatmake gnatname gnatprep gnatxref gnatfind gnatclean ; do \
    install_name=`echo $tool|sed 's,y,y,'`; \
    rm -f /build/gcc-git/pkg/gcc-ada-git/usr/bin/$install_name; \
    if [ -f $tool-cross ] ; \
    then \
      /usr/bin/install -c $tool-cross /build/gcc-git/pkg/gcc-ada-git/usr/bin/$install_name; \
    else \
      /usr/bin/install -c $tool /build/gcc-git/pkg/gcc-ada-git/usr/bin/$install_name; \
    fi ; \
  done; \
  rm -f /build/gcc-git/pkg/gcc-ada-git/usr/bin/gnatdll; \
  /usr/bin/install -c gnatdll /build/gcc-git/pkg/gcc-ada-git/usr/bin/gnatdll; \
fi
/bin/sh /build/gcc-git/src/gcc/gcc/../mkinstalldirs /build/gcc-git/pkg/gcc-ada-git/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0
mkdir -p -- /build/gcc-git/pkg/gcc-ada-git/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0
/bin/sh /build/gcc-git/src/gcc/gcc/../mkinstalldirs /build/gcc-git/pkg/gcc-ada-git/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0
/bin/sh /build/gcc-git/src/gcc/gcc/../mkinstalldirs /build/gcc-git/pkg/gcc-ada-git/usr/bin
/bin/sh /build/gcc-git/src/gcc/gcc/../mkinstalldirs /build/gcc-git/pkg/gcc-ada-git/usr/include
mkdir -p -- /build/gcc-git/pkg/gcc-ada-git/usr/include
/bin/sh /build/gcc-git/src/gcc/gcc/../mkinstalldirs /build/gcc-git/pkg/gcc-ada-git/usr/share/info
mkdir -p -- /build/gcc-git/pkg/gcc-ada-git/usr/share/info
/bin/sh /build/gcc-git/src/gcc/gcc/../mkinstalldirs /build/gcc-git/pkg/gcc-ada-git/usr/share/man/man1
mkdir -p -- /build/gcc-git/pkg/gcc-ada-git/usr/share/man/man1
/bin/sh /build/gcc-git/src/gcc/gcc/../mkinstalldirs /build/gcc-git/pkg/gcc-ada-git/usr/share/man/man7
mkdir -p -- /build/gcc-git/pkg/gcc-ada-git/usr/share/man/man7
rm -f /build/gcc-git/pkg/gcc-ada-git/usr/share/info/gnat_ugn.info
rm -f /build/gcc-git/pkg/gcc-ada-git/usr/share/info/gnat_rm.info
rm -f /build/gcc-git/pkg/gcc-ada-git/usr/share/info/gnat-style.info
if [ -f doc/gnat_ugn.info ]; then \
  for f in doc/gnat_ugn.info*; do \
    realfile=`echo $f | sed -e 's|.*/\([^/]*\)$|\1|'`; \
    /usr/bin/install -c -m 644 $f /build/gcc-git/pkg/gcc-ada-git/usr/share/info/$realfile; \
    chmod a-x /build/gcc-git/pkg/gcc-ada-git/usr/share/info/$realfile; \
  done; \
else true; fi
if [ -f doc/gnat_rm.info ]; then \
  for f in doc/gnat_rm.info*; do \
    realfile=`echo $f | sed -e 's|.*/\([^/]*\)$|\1|'`; \
    /usr/bin/install -c -m 644 $f /build/gcc-git/pkg/gcc-ada-git/usr/share/info/$realfile; \
    chmod a-x /build/gcc-git/pkg/gcc-ada-git/usr/share/info/$realfile; \
  done; \
else true; fi
if [ -f doc/gnat-style.info ]; then \
  for f in doc/gnat-style.info*; do \
    realfile=`echo $f | sed -e 's|.*/\([^/]*\)$|\1|'`; \
    /usr/bin/install -c -m 644 $f /build/gcc-git/pkg/gcc-ada-git/usr/share/info/$realfile; \
    chmod a-x /build/gcc-git/pkg/gcc-ada-git/usr/share/info/$realfile; \
  done; \
else true; fi
if /bin/sh -c 'install-info --version' >/dev/null 2>&1; then \
  if [ -f /build/gcc-git/pkg/gcc-ada-git/usr/share/info/gnat-style.info ]; then \
    install-info --dir-file=/build/gcc-git/pkg/gcc-ada-git/usr/share/info/dir /build/gcc-git/pkg/gcc-ada-git/usr/share/info/gnat-style.info; \
  else true; fi; \
else true; fi;
if /bin/sh -c 'install-info --version' >/dev/null 2>&1; then \
  if [ -f /build/gcc-git/pkg/gcc-ada-git/usr/share/info/gnat_ugn.info ]; then \
    install-info --dir-file=/build/gcc-git/pkg/gcc-ada-git/usr/share/info/dir /build/gcc-git/pkg/gcc-ada-git/usr/share/info/gnat_ugn.info; \
  else true; fi; \
else true; fi;
if /bin/sh -c 'install-info --version' >/dev/null 2>&1; then \
  if [ -f /build/gcc-git/pkg/gcc-ada-git/usr/share/info/gnat_rm.info ]; then \
    install-info --dir-file=/build/gcc-git/pkg/gcc-ada-git/usr/share/info/dir /build/gcc-git/pkg/gcc-ada-git/usr/share/info/gnat_rm.info; \
  else true; fi; \
else true; fi;
/usr/bin/install: cannot stat 'gnatdll': No such file or directory
make: [/build/gcc-git/src/gcc/gcc/ada/gcc-interface/Make-lang.in:814: ada.install-common] Error 1 (ignored)
if [ -f gnat1 ] ; \
then \
  make "ADA_CFLAGS=" "BISON=bison" "BISONFLAGS=" "CFLAGS=-g -O2 -fchecking=1 " "LDFLAGS=-static-libstdc++ -static-libgcc " "FLEX=flex" "FLEXFLAGS=" "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "LN=ln" "LN_S=ln -s" "RANLIB_FOR_TARGET=ranlib" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000" "MAKEINFOFLAGS=--no-split" "MAKEOVERRIDES=" "SHELL=/bin/sh" "exeext=" "build_exeext=" "objext=.o" "exec_prefix=/usr" "prefix=/usr" "local_prefix=/usr/local" "gxx_include_dir=/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0/../../../../include/c++/9.0.0" "build_tooldir=/usr/x86_64-pc-linux-gnu" "gcc_tooldir=/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0/../../../../x86_64-pc-linux-gnu" "bindir=/usr/bin" "libexecsubdir=/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0" "datarootdir=/usr/share" "datadir=/usr/share" "libsubdir=/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0" "localedir=/usr/share/locale" "ADA_FOR_BUILD=" "ADA_INCLUDE_DIR=/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0/adainclude" "ADA_RTL_OBJ_DIR=/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0/adalib" "ADAFLAGS=-gnatpg -gnatwns -W -Wall" "ADA_FOR_TARGET=" "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" install-gnatlib; \
fi
make[1]: Entering directory '/build/gcc-git/src/gcc-build/gcc'
make -C ada "ADA_CFLAGS=" "BISON=bison" "BISONFLAGS=" "CFLAGS=-g -O2 -fchecking=1 " "LDFLAGS=-static-libstdc++ -static-libgcc " "FLEX=flex" "FLEXFLAGS=" "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "LN=ln" "LN_S=ln -s" "RANLIB_FOR_TARGET=ranlib" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000" "MAKEINFOFLAGS=--no-split" "MAKEOVERRIDES=" "SHELL=/bin/sh" "exeext=" "build_exeext=" "objext=.o" "exec_prefix=/usr" "prefix=/usr" "local_prefix=/usr/local" "gxx_include_dir=/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0/../../../../include/c++/9.0.0" "build_tooldir=/usr/x86_64-pc-linux-gnu" "gcc_tooldir=/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0/../../../../x86_64-pc-linux-gnu" "bindir=/usr/bin" "libexecsubdir=/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0" "datarootdir=/usr/share" "datadir=/usr/share" "libsubdir=/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0" "localedir=/usr/share/locale" "ADA_FOR_BUILD=" "ADA_INCLUDE_DIR=/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0/adainclude" "ADA_RTL_OBJ_DIR=/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0/adalib" "ADAFLAGS=-gnatpg -gnatwns -W -Wall -W -Wall" "ADA_FOR_TARGET=" "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" install-gnatlib
make[2]: Entering directory '/build/gcc-git/src/gcc-build/gcc/ada'
for f in ; do \
    cp -p /build/gcc-git/src/gcc/gcc/ada/$f /usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0/; \
done
rm -rf /build/gcc-git/pkg/gcc-ada-git/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0/adalib
rm -rf /build/gcc-git/pkg/gcc-ada-git/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0/adainclude
mkdir -p /build/gcc-git/pkg/gcc-ada-git/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0/adalib
mkdir -p /build/gcc-git/pkg/gcc-ada-git/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0/adainclude
for file in rts/*.ali; do \
    cp -p $file /build/gcc-git/pkg/gcc-ada-git/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0/adalib; \
done
cd rts; for file in *.a;do \
    /usr/bin/install -c -m 644 $file /build/gcc-git/pkg/gcc-ada-git/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0/adalib; \
    ranlib /build/gcc-git/pkg/gcc-ada-git/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0/adalib/$file; \
done
true
for file in gnat gnarl; do \
   if [ -f rts/lib${file}-9.so ]; then \
      /usr/bin/install -c rts/lib${file}-9.so \
                 /build/gcc-git/pkg/gcc-ada-git/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0/adalib; \
   fi; \
   if [ -f rts/lib${file}.so ]; then \
      ln -s lib${file}-9.so \
      /build/gcc-git/pkg/gcc-ada-git/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0/adalib/lib${file}.so; \
   fi; \
   if [ -d rts/lib${file}-9.so.dSYM ]; then \
      cp -p -r rts/lib${file}-9.so.dSYM \
        /build/gcc-git/pkg/gcc-ada-git/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0/adalib; \
   fi; \
done
for file in rts/*.ad[sb]*; do \
    cp -p $file /build/gcc-git/pkg/gcc-ada-git/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0/adainclude; \
done
cp: cannot stat 'rts/standard.ads.h': No such file or directory
cd /build/gcc-git/pkg/gcc-ada-git/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0/adainclude; chmod a-wx *.adb
cd /build/gcc-git/pkg/gcc-ada-git/usr/lib/gcc/x86_64-pc-linux-gnu/9.0.0/adainclude; chmod a-wx *.ads
make[2]: Leaving directory '/build/gcc-git/src/gcc-build/gcc/ada'
make[1]: Leaving directory '/build/gcc-git/src/gcc-build/gcc'
Comment 1 Eric Botcazou 2018-12-25 09:02:31 UTC
Nobody else is seeing this though so you'll have to debug on your end, for example  by comparing what happens before and after the change.
Comment 2 jamespharvey20 2018-12-29 03:46:51 UTC
Apologies.  Those 2 errors were red herrings that got me by looking for where things first went wrong.  These 2 errors appear the way Arch build gcc, even on 8.2.1.  They're not fatal errors.  Per the revision's comments, "make... install-gnatlib" just needed to be changed to "make... install-libada".  This command comes just after the "make ada-install-{common,info}" which is what threw me.