pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pkgtools/pkg_install does not compile with gcc-9 (Ubutnu 20)



On Tue, 17 Mar 2020 at 12:38, Shay Perlstein <Shay.Perlstein%tomtom.com@localhost> wrote:
>
> On Tue, 2020-03-17 at 09:01 +0000, Ottavio Caruso wrote:
> > On Tue, 17 Mar 2020 at 08:29, Shay Perlstein <
> > Shay.Perlstein%tomtom.com@localhost> wrote:
> > >
> > > On Mon, 2020-03-16 at 11:35 +0000, Ottavio Caruso wrote:
> > > > On Mon, 16 Mar 2020 at 11:26, Shay Perlstein <
> > > > Shay.Perlstein%tomtom.com@localhost> wrote:
> > > > >
> > > > > On Sun, 2020-03-15 at 12:05 +0100, shay.perlstein%tomtom.com@localhost
> > > > > wrote:
> > > > > > On Sun, 2020-03-15 at 08:29 +0000, Ottavio Caruso wrote:
> > > > > > > On Fri, 13 Mar 2020 at 19:53, Shay Perlstein <
> > > > > > > Shay.Perlstein%tomtom.com@localhost> wrote:
> > > > > > > >
> > > > > > > >
> > > > > > > > Hi,
> > > > > > > > I am porting our pkgsrc setup to Ubuntu 20. One of the
> > > > > > > > things
> > > > > > > > that
> > > > > > > > does not compile out of the box is pkgtools/pkg_install.
> > > > > > > >
> > > > > > > > The following error is generated:
> > > > > > > >
> > > > > > > > checking whether the C compiler works.. no
> > > > > > > > configure: error: in `/var/tmp/pkgsrc-
> > > > > > > > obj/pkgtools/pkg_install/work/libnbcompat':
> > > > > > > > configure: error: C compiler cannot create executables
> > > > > > > > See `config.log' for more details
> > > > > > > > *** Error code 77
> > > > > > > >
> > > > > > > > Stop.
> > > > > > > > bmake[1]: stopped in /usr/pkgsrc/pkgtools/pkg_install
> > > > > > > > *** Error code 1
> > > > > > > >
> > > > > > > >
> > > > > > > > Diving into the config log:
> > > > > > > >
> > > > > > > >
> > > > > > > > configure:3047: checking whether the C compiler works
> > > > > > > > configure:3069: cc -O2 -D_FORTIFY_SOURCE=2
> > > > > > > > -I/usr/local/pkg/include
> > > > > > > > -D_LARGEFILE_SOURCE -D_LARGE_FILES -D_FILE_OFFSET_BITS=64
> > > > > > > > -DDEF_UMASK=022 -I/var/tmp/pkgsrc-
> > > > > > > > obj/pkgtools/pkg_install/work/bzip2 -I/var/tmp/pkgs
> > > > > > > > rc-obj/pkgtools/pkg_install/work/zlib -I/var/tmp/pkgsrc-
> > > > > > > > obj/pkgtools/pkg_install/work/libarchive/libarchive
> > > > > > > > -I/var/tmp/pkgsrc-obj/pkgtools/pkg_install/work/libfetch
> > > > > > > > -I/var/tmp/pkgsrc-obj/pkgtools/pkg_install/wor
> > > > > > > > k -DHAVE_NBCOMPAT_H=1 -I/var/tmp/pkgsrc-
> > > > > > > > obj/pkgtools/pkg_install/work/libnbcompat
> > > > > > > > -I/usr/local/pkg/include
> > > > > > > > -Wl,-z,relro -Wl,-z,now -lssl -lcrypto -L/var/tmp/pkgsrc-
> > > > > > > > obj/pkgtools/pkg_install/work/bzip2 -L/var/tmp/
> > > > > > > > pkgsrc-obj/pkgtools/pkg_install/work/zlib
> > > > > > > > -L/var/tmp/pkgsrc-
> > > > > > > > obj/pkgtools/pkg_install/work/libarchive/.libs
> > > > > > > > -L/var/tmp/pkgsrc-
> > > > > > > > obj/pkgtools/pkg_install/work/libfetch -L/var/tmp/pkgsrc-
> > > > > > > > obj/pkgtools/pkg_install/work
> > > > > > > > /netpgp -L/var/tmp/pkgsrc-
> > > > > > > > obj/pkgtools/pkg_install/work/libnbcompat
> > > > > > > > -L/usr/local/pkg/lib -Wl,-R/usr/local/pkg/lib
> > > > > > > > conftest.c  >&5
> > > > > > > > /tmp/cc9uaWwA.s: Assembler messages:
> > > > > > > > /tmp/cc9uaWwA.s:10: Error: no such instruction: `endbr64'
> > > > > > > > configure:3073: $? = 1
> > > > > > > > configure:3111: result: no
> > > > > > > > configure: failed program was:
> > > > > > > > > /* confdefs.h */
> > > > > > > > > #define PACKAGE_NAME "libnbcompat"
> > > > > > > > > #define PACKAGE_TARNAME "libnbcompat"
> > > > > > > > > #define PACKAGE_VERSION "20150419"
> > > > > > > > > #define PACKAGE_STRING "libnbcompat 20150419"
> > > > > > > > > #define PACKAGE_BUGREPORT "joerg%NetBSD.org@localhost"
> > > > > > > > > #define PACKAGE_URL ""
> > > > > > > > > /* end confdefs.h.  */
> > > > > > > > >
> > > > > > > > > int
> > > > > > > > > main ()
> > > > > > > > > {
> > > > > > > > >
> > > > > > > > >   ;
> > > > > > > > >   return 0;
> > > > > > > > > }
> > > > > > > >
> > > > > > > > configure:3116: error: in `/var/tmp/pkgsrc-
> > > > > > > > obj/pkgtools/pkg_install/work/libnbcompat':
> > > > > > > > configure:3118: error: C compiler cannot create
> > > > > > > > executables
> > > > > > > > See `config.log' for more details
> > > > > > > >
> > > > > > > > looking into the Makefile you see the following:
> > > > > > > >
> > > > > > > >
> > > > > > > > # These are needed to solve a chicken-and-egg problem
> > > > > > > > where
> > > > > > > > pkgsrc
> > > > > > > > uses
> > > > > > > > # newer features of pkg_install, but older NetBSD
> > > > > > > > installations
> > > > > > > > won't
> > > > > > > > # support them.  In this case, we explicitly use the
> > > > > > > > native
> > > > > > > > GCC
> > > > > > > > # compiler to avoid problems with depending on pkgsrc GCC
> > > > > > > > for
> > > > > > > > building
> > > > > > > > # pkg_install.
> > > > > > > > #
> > > > > > > > # We also use the newly built pkg_{add,create,delete}
> > > > > > > > since
> > > > > > > > upgrading
> > > > > > > > # from an older pkg_install might required features of
> > > > > > > > the
> > > > > > > > new
> > > > > > > > # program, provided that we are not cross-
> > > > > > > > compiling.  (XXX If
> > > > > > > > we
> > > > > > > > are
> > > > > > > > # cross-compiling, we should maybe have a host build
> > > > > > > > dependency
> > > > > > > > on
> > > > > > > > # ourselves...)
> > > > > > > > #
> > > > > > > > # Note that the definitions are only overriden for the
> > > > > > > > phases
> > > > > > > > that
> > > > > > > > are
> > > > > > > > # supposed to use them.  pkg_admin pmatch might be used
> > > > > > > > when
> > > > > > > > looking for
> > > > > > > > # dependencies. If that is ever changed in a incompatible
> > > > > > > > way,
> > > > > > > > this
> > > > > > > > has to
> > > > > > > > # be rethought.
> > > > > > > > USE_NATIVE_GCC=     yes
> > > > > > > >
> > > > > > > > Removing it will make the package compile on Ubuntu 20.
> > > > > > > >
> > > > > > > > Beside the actual gcc-9 issue, the other question is, why
> > > > > > > > the
> > > > > > > > native compiler is used by default and not only on older
> > > > > > > > NetBSD
> > > > > > > > where the issue might occur?
> > > > > > > > I would expect pkgsrc to avoid using system compilers by
> > > > > > > > default,
> > > > > > > > especially when  `PREFER_PKGSRC=yes` option is used.
> > > > > > >
> > > > > > > On a similar system:
> > > > > > > Linux e130 4.9.0-11-amd64 #1 SMP Debian 4.9.189-3+deb9u1
> > > > > > > (2019-
> > > > > > > 09-
> > > > > > > 20)
> > > > > > > x86_64 GNU/Linux
> > > > > > >
> > > > > > > I cannot replicate your errors. pkgtools/pkg_install builds
> > > > > > > and
> > > > > > > installs fine here.
> > > > >
> > > > > Oops I forgot to state, we are still on NetBSD-2019Q1 branch
> > > > > (planning
> > > > > to do a migration ASAP).
> > > > > So assuming I am on old branch and there is no point looking
> > > > > into
> > > > > why
> > > > > the error occurs on that branch code, the actual question of
> > > > > why
> > > > > the
> > > > > system compiler is used by defualt for this package is still
> > > > > valid,
> > > > > no?
> > > >
> > > > What does `pkg_info|grep gcc` report
> > >
> > > gcc5-5.5.0nb4       The GNU Compiler Collection (GCC) - 5 Release
> > > Series
> > > gcc7-libs-7.4.0nb1  The GNU Compiler Collection (GCC) support
> > > shared
> > > libraries
> > > gcc7-7.4.0          The GNU Compiler Collection (GCC) - 7.0 Release
> > > Series
> > >
> > > we use pkgsrc gcc7 to compile the packages (avoiding system
> > > compiler
> > > and other dependencies).
> > >
> > > At the moment we patched the pkg_install package to avoid using the
> > > system compiler.
> >
> > I would checkout current and make a second bootstrap with a separate
> > prefix:
> >
> > ./bootstrap --prefer-pkgsrc yes --prefix /usr/pkg-current
> >
> > and then build from current and see what comes out.
> But why should I do that? I mean the main quesiton is about the pkg
> default setting to force the usage of the system compiler. I did change
> it locally and everything compiles fine with pksrc GCC7 compiler which
> we use to compile everything (again we are on a last year release
> branch).
> Our main usage of pkgsrc is to avoid system dependencies, buidling
> pkgsrc bootstrap and/or packages with system compilers is not desired.

Senior users will correct me, but I'm led to believe that whatever is
in Makefile will override whatever is in mk.conf. I'm not 100% sure
but this is my experience.

Try putting this in mk.conf:

USE_NATIVE_GCC=no
USE_PKGSRC_GCC=yes

Then, when you are in the build directory:

bmake show-var VARNAME=USE_NATIVE_GCC

Is it still displays "yes", then you can try:

bmake USE_NATIVE_GCC=no install

This worked for me.


-- 
Ottavio Caruso


Home | Main Index | Thread Index | Old Index