[Bug 1116889] New: windows:mingw:win32/mingw32-cross-gcc: Bug / Installation size is huge (unstripped exes?)
http://bugzilla.opensuse.org/show_bug.cgi?id=1116889 Bug ID: 1116889 Summary: windows:mingw:win32/mingw32-cross-gcc: Bug / Installation size is huge (unstripped exes?) Classification: openSUSE Product: openSUSE.org Version: unspecified Hardware: Other OS: Other Status: NEW Severity: Normal Priority: P5 - None Component: 3rd party software Assignee: fstrba@suse.com Reporter: sergei.ivn+bugzilla@gmail.com QA Contact: bnc-team-screening@forge.provo.novell.com CC: fridrich.strba@bluewin.ch, hib@hiberis.nl, idonmez@suse.com, mkbosmans@gmail.com, tlillqvist@suse.com Found By: --- Blocker: --- (second attempt) Hi. I'm using opensuse tumbleweed on a remote CI server for building some of my windows project. And since the container size is huge I did some investigations and it turns out that execs size for mingw32-cross-{gcc,cpp,gcc-c++} is very big, for instance the size of the cc1 executable is over 200 megabytes. I'm myself is on windows so my possibilities are limited, but the msys2 file utility said that the exec files contain some debug info. (bugzilla prefilled cc:alan@xamarin.com breaks the report attempt) -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1116889 http://bugzilla.opensuse.org/show_bug.cgi?id=1116889#c1 Ralf Habacker <ralf.habacker@freenet.de> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ralf.habacker@freenet.de --- Comment #1 from Ralf Habacker <ralf.habacker@freenet.de> --- This issue is still present:
zypper packages | grep mingw32-cross-gcc-c++ i | windows:mingw:win32 | mingw32-cross-gcc-c++ | 9.2.0-6.3 | x86_64
find /usr/lib64/gcc/i686-w64-mingw32/9.2.0/ -size +100M -ls 2252029 168964 -rwxr-xr-x 1 root root 173014024 Apr 20 14:56 /usr/lib64/gcc/i686-w64-mingw32/9.2.0/lto1 2253607 176944 -rwxr-xr-x 1 root root 181185600 Apr 20 14:55 /usr/lib64/gcc/i686-w64-mingw32/9.2.0/cc1 2232079 186940 -rwxr-xr-x 1 root root 191422064 Apr 20 14:56 /usr/lib64/gcc/i686-w64-mingw32/9.2.0/cc1plus
-- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1116889 http://bugzilla.opensuse.org/show_bug.cgi?id=1116889#c2 --- Comment #2 from Ralf Habacker <ralf.habacker@freenet.de> --- The reason for this (at least for the windows:mingw:win{32|64} project) is that for native Linux packages, the symbols of generated executables are not removed from the executable if debuginfo generation is disabled. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1116889 http://bugzilla.opensuse.org/show_bug.cgi?id=1116889#c3 Ismail Dönmez <idonmez@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |CONFIRMED --- Comment #3 from Ismail Dönmez <idonmez@suse.com> --- (In reply to Ralf Habacker from comment #2)
The reason for this (at least for the windows:mingw:win{32|64} project) is that for native Linux packages, the symbols of generated executables are not removed from the executable if debuginfo generation is disabled.
Nice find! We should be disabling debuginfo generation per package, when necessary. I'll look into enabling this tomorrow. Thanks again! -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1116889 http://bugzilla.opensuse.org/show_bug.cgi?id=1116889#c4 --- Comment #4 from Ralf Habacker <ralf.habacker@freenet.de> --- (In reply to Ismail Dönmez from comment #3)
Nice find! We should be disabling debuginfo generation per package, when necessary. I'll look into enabling this tomorrow.
Just for the record: Debuginfo generation was disabled at the mentioned mingw projects because of an issue (https://github.com/openSUSE/obs-build/pull/471#issuecomment-432388085) "mingw32 and mingw64 packages (https://build.opensuse.org/project/show/windows:mingw:win32 and https://build.opensuse.org/project/show/windows:mingw:win64) have their own process for creating debug packages based on historical decisions, which does not harmonize with the creation of native debug packages. Therefore, the repository option to create debug packages is disabled for these projects as well. However, this also means that for a package that contains cross compilers, for example, no native debug packages can be created." -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1116889 http://bugzilla.opensuse.org/show_bug.cgi?id=1116889#c5 --- Comment #5 from Ralf Habacker <ralf.habacker@freenet.de> --- (In reply to Ralf Habacker from comment #4)
However, this also means that for a package that contains cross compilers, for example, no native debug packages can be created."
A review of the current debuginfo support shows that this issue was solved and it should be possible to reenable generating debug info on the mentioned projects as workaround without any conflict, where for native packages '-debuginfo' and '-debugsource' packages and for cross compiled packages '-debug' packages are created. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1116889 http://bugzilla.opensuse.org/show_bug.cgi?id=1116889#c6 --- Comment #6 from Ralf Habacker <ralf.habacker@freenet.de> --- (In reply to Ralf Habacker from comment #5)
A review of the current debuginfo support shows that this issue was solved and it should be possible to reenable generating debug info on the mentioned projects as workaround without any conflict, where for native packages '-debuginfo' and '-debugsource' packages and for cross compiled packages '-debug' packages are created.
This workaround works for the mingw{32|64}-cross-gcc packages, but unfortunally not with other packages, for example home:rhabacker:branches:windows:mingw:win32/mingw32-libqt4, which is a branch from windows:mingw:win32 Installed (but unpackaged) file(s) found: [ 2143s] /usr/lib/debug/usr/i686-w64-mingw32/bin/qmake-4.8.6-lp150.43.2.x86_64.debug [ 2143s] /usr/src/debug/mingw32-qt4-4.8.6-lp150.43.2.x86_64/src/3rdparty/md4/md4.cpp [ 2143s] /usr/src/debug/mingw32-qt4-4.8.6-lp150.43.2.x86_64/src/3rdparty/md4/md4.h [ 2143s] /usr/src/debug/mingw32-qt4-4.8.6-lp150.43.2.x86_64/src/3rdparty/md5/md5.cpp [ 2143s] /usr/src/debug/mingw32-qt4-4.8.6-lp150.43.2.x86_64/src/3rdparty/md5/md5.h ... -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1116889 http://bugzilla.opensuse.org/show_bug.cgi?id=1116889#c7 --- Comment #7 from Ralf Habacker <ralf.habacker@freenet.de> --- (In reply to Ralf Habacker from comment #6)
This workaround works for the mingw{32|64}-cross-gcc packages, but unfortunally not with other packages, for example home:rhabacker:branches:windows:mingw:win32/mingw32-libqt4, which is a branch from windows:mingw:win32 This and other affected packages provides native and cross compiled package.
The log file shows that debug symbols for native packages are extracted first with: /usr/lib/rpm/find-debuginfo.sh -j8 --build-id-seed 4.8.6-lp150.43.2 --unique-debug-suffix -4.8.6-lp150.43.2.x86_64 --unique-debug-src-base mingw32-qt4-4.8.6-lp150.43.2.x86_64 --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 50000000 -S debugsourcefiles.list /home/abuild/rpmbuild/BUILD/qt-everywhere-opensource-src-4.8.6 and then the symbols from cross compiled packages with: /usr/lib/rpm/mingw32-find-debuginfo.sh /home/abuild/rpmbuild/BUILD 1 which fails to add the mentioned files to the mingwXX-debugsources.list -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1116889 http://bugzilla.opensuse.org/show_bug.cgi?id=1116889#c8 --- Comment #8 from Ralf Habacker <ralf.habacker@freenet.de> --- (In reply to Ralf Habacker from comment #4)
This workaround works for the mingw{32|64}-cross-gcc packages, but unfortunally not with other packages, for example home:rhabacker:branches:windows:mingw:win32/mingw32-libqt4, which is a branch from windows:mingw:win32
This issue is tracked with bug 1172059 -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1116889 http://bugzilla.opensuse.org/show_bug.cgi?id=1116889#c9 Ralf Habacker <ralf.habacker@freenet.de> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|CONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #9 from Ralf Habacker <ralf.habacker@freenet.de> --- (In reply to Serg Iv from comment #0)
windows project. And since the container size is huge I did some investigations and it turns out that execs size for mingw32-cross-{gcc,cpp,gcc-c++} is very big, for instance the size of the cc1 executable is over 200 megabytes.
Looking at recently installed packages for the mingw32 cross compiler(s) $ rpm -q -f /usr/bin/i686-w64-mingw32-g* mingw32-cross-gcc-c++-12.2.0-lp154.28.6.x86_64 mingw32-cross-gcc-12.2.0-lp154.28.6.x86_64 does not show the mentioned issue. The size is about 6 MBytes as shown below: $ ls /usr/bin/i686-w64-mingw32-g* -l rwxr-xr-x 2 root root 6373456 30. Jan 15:28 /usr/bin/i686-w64-mingw32-g++ -rwxr-xr-x 2 root root 6363880 30. Jan 15:28 /usr/bin/i686-w64-mingw32-gcc -rwxr-xr-x 2 root root 6363880 30. Jan 15:28 /usr/bin/i686-w64-mingw32-gcc-12.2.0 If the issues persists feel free to reopen this bug. -- You are receiving this mail because: You are on the CC list for the bug.
participants (2)
-
bugzilla_noreply@novell.com
-
bugzilla_noreply@suse.com