tech-pkg archive

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

Re: default C versions



On Thu, 29 Jun 2023 at 22:10, Jason Bacon <jtocino%gmx.com@localhost> wrote:
>
> We've had similar discussions before, and I'd remind everyone about the
> risks and complexities of mixing multiple GCC versions in unpredictable
> ways.
>
> My "solution" when I started using pkgsrc on CentOS 6 years ago was to
> use the base compiler only to build a pkgsrc GCC and its dependencies,
> and use the pkgsrc GCC for all other packages.  The dependency list has
> grown and keeping it updated has been a very minor nuisance, but I still
> consider this the least horrid workaround for obsolete base compilers.
>
> The list of GCC deps could be auto-generated to ease the burden.
>
> auto-pkgsrc-setup currently generates the following:
>
> .if \\
>      empty(PKGPATH:Marchivers/bsdtar) && \\
>      empty(PKGPATH:Marchivers/bzip2) && \\
>      empty(PKGPATH:Marchivers/pax) && \\
>      empty(PKGPATH:Marchivers/xz) && \\
>      empty(PKGPATH:Mconverters/help2man) && \\
>      empty(PKGPATH:Mconverters/libiconv) && \\
>      empty(PKGPATH:Mconverters/p5-Unicode-EastAsianWidth) && \\
>      empty(PKGPATH:Mdatabases/db4) && \\
>      empty(PKGPATH:Mdevel/autoconf) && \\
>      empty(PKGPATH:Mdevel/binutils) && \\
>      empty(PKGPATH:Mdevel/bison) && \\
>      empty(PKGPATH:Mdevel/flex) && \\
>      empty(PKGPATH:Mdevel/gettext-lib) && \\
>      empty(PKGPATH:Mdevel/gettext-tools) && \\
>      empty(PKGPATH:Mdevel/gmake) && \\
>      empty(PKGPATH:Mdevel/gmp) && \\
>      empty(PKGPATH:Mdevel/gtexinfo) && \\
>      empty(PKGPATH:Mdevel/libffi) && \\
>      empty(PKGPATH:Mdevel/libtool-base) && \\
>      empty(PKGPATH:Mdevel/libuuid) && \\
>      empty(PKGPATH:Mdevel/makedepend) && \\
>      empty(PKGPATH:Mdevel/pkgconf) && \\
>      empty(PKGPATH:Mdevel/m4) && \\
>      empty(PKGPATH:Mdevel/ncurses) && \\
>      empty(PKGPATH:Mdevel/nbpatch) && \\
>      empty(PKGPATH:Mdevel/p5-CPAN-Meta) && \\
>      empty(PKGPATH:Mdevel/p5-Module-Build) && \\
>      empty(PKGPATH:Mdevel/p5-Perl4-CoreLibs) && \\
>      empty(PKGPATH:Mdevel/p5-Scalar-List-Utils) && \\
>      empty(PKGPATH:Mdevel/p5-gettext) && \\
>      empty(PKGPATH:Mdevel/p5-inc-latest) && \\
>      empty(PKGPATH:Mdevel/readline) && \\
>      empty(PKGPATH:Mdevel/zlib) && \\
>      empty(PKGPATH:Mlang/gcc*) && \\
>      empty(PKGPATH:Mlang/perl5) && \\
>      empty(PKGPATH:Mlang/python*) && \\
>      empty(PKGPATH:Mmath/cloog) && \\
>      empty(PKGPATH:Mmath/isl) && \\
>      empty(PKGPATH:Mmath/mpcomplex) && \\
>      empty(PKGPATH:Mmath/mpfr) && \\
>      empty(PKGPATH:Mmisc/p5-Locale-libintl) && \\
>      empty(PKGPATH:Mnet/libfetch) && \\
>      empty(PKGPATH:Mpkgtools/cwrappers) && \\
>      empty(PKGPATH:Mpkgtools/digest) && \\
>      empty(PKGPATH:Mpkgtools/mktools) && \\
>      empty(PKGPATH:Mpkgtools/pkg_install) && \\
>      empty(PKGPATH:Mpkgtools/pkg_install-info) && \\
>      empty(PKGPATH:Mpkgtools/pkgin) && \\
>      empty(PKGPATH:Msecurity/mozilla-rootcerts*) && \\
>      empty(PKGPATH:Msecurity/openssl) && \\
>      empty(PKGPATH:Msysutils/checkperms) && \\
>      empty(PKGPATH:Mtextproc/gsed) && \\
>      empty(PKGPATH:Mtextproc/p5-Text-Unidecode) && \\
>      empty(PKGPATH:Mx11/xorgproto)
>
> GCC_REQD+=$gcc_version
> GFORTRAN_VERSION=$gcc_version
>
> .endif  # GCC_REQD

If I could ask two random stupid questions? :)

Would it be possible to manage this by having GCC_REQD set by default
on such a platform, with code to allow "BYPASS_GCC_REQD", so bootstrap
could set BYPASS_GCC_REQD to build pkg_tools, and then again to build
a useful gcc version? (though rebuilding any gcc dependency later
would switch to one built with gcc, which may be... unhelpful)

Alternatively, would it be feasible to bootstrap twice, once without
GCC_REQD just enough to build a gcc package which would install in
/usr/pkg-gcc and then a normal bootstrap into /usr/pkg using that as
an external compiler?

If neither of those work, would there be an sense in maintaining the
code you included in-pkgsrc-tree as a file not included by default?

Thanks

David


Home | Main Index | Thread Index | Old Index