Curious about how gcc-toolset being built

Issues related to applications and software problems and general support
Post Reply
weizhuo_zhang
Posts: 1
Joined: 2023/07/26 03:59:38

Curious about how gcc-toolset being built

Post by weizhuo_zhang » 2023/07/26 04:03:06

I notice that gcc-toolset is quite light ~180M. But the GCC I built from source cost > 3G.
So I am very curious about how this could been that light in gcc-toolset. Cuz we need gcc-toolset 12.3 to support FP16 features in XEON CPU server.
Quite a long building time and huge size the GCC is.

User avatar
TrevorH
Site Admin
Posts: 33232
Joined: 2009/09/24 10:40:56
Location: Brighton, UK

Re: Curious about how gcc-toolset being built

Post by TrevorH » 2023/07/26 17:30:06

Sounds like you did not strip all the debug info etc.

I would suggest grabbing the SRPM used to built the current gcc-toolset and amending that for any newer version you want to build. Then run that through the mock utility to build it in a clean chroot and pick up the resulting packages from the mock output directory. Or, alternatively, pick up the Feedora gcc-toolset SRPMs for the release you really want and rebuild those in the same way.
The future appears to be RHEL or Debian. I think I'm going Debian.
Info for USB installs on http://wiki.centos.org/HowTos/InstallFromUSBkey
CentOS 5 and 6 are deadest, do not use them.
Use the FAQ Luke

PryMar56
Posts: 17
Joined: 2020/04/20 14:56:31

Re: Curious about how gcc-toolset being built

Post by PryMar56 » 2023/10/10 00:48:32

Starting with:
gcc-12.3.1-1.fc37.src.rpm, then extracting below:
gcc-12.3.1-20230508.tar.xz

then modified this:
gcc-toolset-12-gcc-12.2.1-7.4.el9.src.rpm

with the 12.3 tarball and the version changes, then ended up with:

/usr/lib/debug/opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/libtsan.a
/usr/lib/debug/opt/rh/gcc-toolset-12/root/usr/lib/gcc/x86_64-redhat-linux/12/libubsan.a
/usr/lib64/libatomic.so.1
/usr/lib64/libatomic.so.1.2.0
/usr/lib64/libitm.so.1
/usr/lib64/libitm.so.1.0.0
/usr/lib64/liblsan.so.0
/usr/lib64/liblsan.so.0.0.0
/usr/lib64/libubsan.so.1
/usr/lib64/libubsan.so.1.0.0
Wrote: /builddir/build/RPMS/gcc-toolset-12-gcc-c++-12.3.1-7.4.el9.x86_64.rpm
Wrote: /builddir/build/RPMS/gcc-toolset-12-libgccjit-12.3.1-7.4.el9.x86_64.rpm
Wrote: /builddir/build/RPMS/gcc-toolset-12-gcc-plugin-devel-12.3.1-7.4.el9.x86_64.rpm
Wrote: /builddir/build/RPMS/gcc-toolset-12-libgccjit-docs-12.3.1-7.4.el9.x86_64.rpm
Wrote: /builddir/build/RPMS/gcc-toolset-12-gcc-gfortran-12.3.1-7.4.el9.x86_64.rpm
Wrote: /builddir/build/RPMS/gcc-toolset-12-libasan-devel-12.3.1-7.4.el9.x86_64.rpm
Wrote: /builddir/build/RPMS/gcc-toolset-12-libtsan-devel-12.3.1-7.4.el9.x86_64.rpm
Wrote: /builddir/build/RPMS/libasan8-12.3.1-7.4.el9.x86_64.rpm
Wrote: /builddir/build/RPMS/libtsan2-12.3.1-7.4.el9.x86_64.rpm
Wrote: /builddir/build/RPMS/gcc-toolset-12-liblsan-devel-12.3.1-7.4.el9.x86_64.rpm
Wrote: /builddir/build/RPMS/gcc-toolset-12-libubsan-devel-12.3.1-7.4.el9.x86_64.rpm
Wrote: /builddir/build/RPMS/gcc-toolset-12-libitm-devel-12.3.1-7.4.el9.x86_64.rpm
Wrote: /builddir/build/RPMS/gcc-toolset-12-libquadmath-devel-12.3.1-7.4.el9.x86_64.rpm
Wrote: /builddir/build/RPMS/gcc-toolset-12-libgccjit-devel-12.3.1-7.4.el9.x86_64.rpm
Wrote: /builddir/build/RPMS/gcc-toolset-12-libatomic-devel-12.3.1-7.4.el9.x86_64.rpm
Wrote: /builddir/build/RPMS/gcc-toolset-12-gcc-plugin-annobin-12.3.1-7.4.el9.x86_64.rpm
Wrote: /builddir/build/RPMS/gcc-toolset-12-libstdc++-devel-12.3.1-7.4.el9.x86_64.rpm
Wrote: /builddir/build/RPMS/gcc-toolset-12-offload-nvptx-12.3.1-7.4.el9.x86_64.rpm
Wrote: /builddir/build/RPMS/gcc-toolset-12-gcc-12.3.1-7.4.el9.x86_64.rpm
Wrote: /builddir/build/RPMS/gcc-toolset-12-libstdc++-docs-12.3.1-7.4.el9.x86_64.rpm
INFO: Done(gcc-toolset-12-gcc-12.3.1-7.4.el9.src.rpm) Config(epel+dev12-9-x86_64) 335 minutes 55 seconds
INFO: Results and/or logs in: /var/tmp/mock-chain-root-2033-u_fn2ztl/results/epel+dev12-9-x86_64/gcc-toolset-12-gcc-12.3.1-7.4.el9
INFO: End chain build: gcc-toolset-12-gcc-12.3.1-7.4.el9.src.rpm
INFO: Success building gcc-toolset-12-gcc-12.3.1-7.4.el9.src.rpm
INFO: Results out to: /var/tmp/mock-chain-root-2033-u_fn2ztl/results/epel+dev12-9-x86_64
INFO: Packages built: 1
INFO: Packages successfully built in this order:
INFO: gcc-toolset-12-gcc-12.3.1-7.4.el9.src.rpm
[mockbuild@cs9min:/build/source/alma9/toolset]$ mock -r epel+dev12-9-x86_64 -D '_lto_cflags %{nil}' -D '_without_check 0' --localrepo=/var/tmp/mock-chain-root-2033-u_fn2ztl --nocheck -D 'debug_package %{nil}' -D 'scl gcc-toolset-12' --enablerepo=devel --chain --recurse gcc-toolset-12-gcc-12.3.1-7.4.el9.src.rpm

cheers,
PryMar56 @ dynavirt.com

Post Reply