void-linux / void-packages

The Void source packages collection
https://voidlinux.org
Other
2.5k stars 2.11k forks source link

Tracking: packages requiring rebuild after dropping gcc4 compatibility #983

Closed pullmoll closed 6 years ago

pullmoll commented 6 years ago

This issue is meant to collect packages which require a rebuild after gcc dropped the libstdc++ gcc4 compatibility. I'll add packages as I identify them when trying to (re-)build locally.

One or more dependencies of libGL need to be rebuilt to make libGL build without -D_GLIBCXX_USE_CXX11_ABI=0. The following dependencies depend on libstdc++:

Remaining dependencies of libGL:

Rebuild (almost all or at least the ones depending libstdc++ / boost) dependencies of libreoffice:

newbluemoon commented 6 years ago

Perhaps this can help a bit?: gcc 6.3.0 was added on 2016-12-23. These packages have a build-date before that. Font and -devel packages are omitted.

GConf-3.2.6_7: 2015-10-24 18:53 UTC
SDL-1.2.15_10: 2015-06-03 20:49 UTC
SDL_image-1.2.12_11: 2014-05-13 11:08 CEST
SDL_mixer-1.2.12_12: 2015-08-26 22:32 UTC
SDL_net-1.2.8_4: 2014-01-05 08:37 CET
SDL_sound-1.0.3_5: 2014-05-13 11:16 CEST
SDL_ttf-2.0.11_5: 2014-05-13 10:59 CEST
acpi-1.7_3: 2015-08-15 19:59 UTC
atool-0.39.0_4: 2015-08-30 19:21 UTC
autoconf-2.69_6: 2015-05-23 02:48 UTC
biew-6.1.0_3: 2015-05-11 16:31 UTC
blackbird-themes-0.4_2: 2015-11-12 07:16 UTC
bluebird-themes-1.2_1: 2015-07-27 08:04 UTC
celt-0.11.3_2: 2015-06-14 01:29 UTC
cln-1.3.4_1: 2014-11-14 15:08 UTC
cloog-0.18.4_1: 2015-07-28 05:11 UTC
colord-gtk-0.1.26_1: 2014-12-03 14:11 UTC
cpio-2.12_1: 2015-09-13 05:04 UTC
distcc-3.2rc1_15: 2015-09-06 11:11 UTC
distcc-gtk-3.2rc1_15: 2015-09-06 11:11 UTC
dotconf-1.3_2: 2014-06-04 13:29 CEST
dvd+rw-tools-7.1_3: 2015-09-03 20:53 UTC
dwm-6.1_1: 2015-11-10 15:39 UTC
encodings-1.0.4_5: 2014-12-19 10:36 UTC
flickcurl-1.26_2: 2015-12-24 07:06 UTC
fluxbox-1.3.7_2: 2015-05-14 07:44 UTC
galculator-gtk3-2.1.4_1: 2015-12-21 08:11 UTC
ganv-1.4.2_2: 2014-08-28 14:22 UTC
gconf-editor-3.0.1_2: 2014-02-25 09:45 CET
gksu-2.0.2_2: 2015-08-29 14:50 UTC
glu-9.0.0_6: 2015-11-12 11:39 UTC
gnome-icon-theme-3.12.0_1: 2014-03-27 20:07 CET
gnome-icon-theme-xfce-0.6_1: 2015-07-07 05:48 UTC
gpm-1.20.7_8: 2015-06-22 18:37 UTC
groff-1.22.3_3: 2015-05-23 02:53 UTC
gtk-engine-murrine-0.98.2_5: 2014-10-24 09:38 UTC
hardinfo-0.5.1_4: 2015-09-03 19:04 UTC
hyphen-2.8.8_1: 2014-10-10 09:17 UTC
iana-etc-2.30_4: 2014-02-20 11:01 CET
id3lib-3.8.3_4: 2015-05-21 19:58 UTC
iftop-1.0pre4_2: 2015-06-02 22:36 UTC
iptraf-ng-1.1.4_2: 2014-01-29 12:50 CET
ipw2100-firmware-1.3_4: 2014-02-20 11:58 CET
ipw2200-firmware-3.1_4: 2014-02-20 11:59 CET
isl-0.12.2_1: 2014-01-19 09:26 CET
kpartx-0.5.0_3: 2015-05-13 18:47 UTC
lcms-1.19_9: 2014-03-09 10:38 CET
leafpad-0.8.18.1_3: 2015-08-09 14:51 UTC
lensfun-0.3.2_1: 2015-11-16 08:52 UTC
libSM-1.2.2_2: 2014-11-23 09:35 UTC
libXaw-1.0.13_1: 2015-05-02 04:49 UTC
liba52-0.7.4_7: 2014-10-13 09:09 UTC
libart-2.3.21_6: 2014-02-20 17:01 CET
libasyncns-0.8_8: 2014-02-15 07:34 CET
libcanberra-0.30_9: 2015-10-24 10:46 UTC
libcanberra-gtk-0.30_9: 2015-10-24 10:46 UTC
libcanberra-gtk3-0.30_9: 2015-10-24 10:46 UTC
libcddb-1.3.2_8: 2015-09-18 21:10 UTC
libchmlib-0.40_2: 2015-08-13 04:09 UTC
libexif-0.6.21_4: 2014-04-05 00:54 CEST
libgnome-keyring-3.12.0_1: 2014-12-13 09:45 UTC
libgpm-1.20.7_8: 2015-06-22 18:37 UTC
libguess-1.2_1: 2015-03-26 04:09 UTC
libid3tag-0.15.1b_7: 2014-12-19 10:58 UTC
libkeybinder2-0.3.1_1: 2015-11-06 19:57 UTC
libkeybinder3-0.3.1_1: 2015-11-06 19:56 UTC
libmad-0.15.1b_8: 2014-10-13 07:58 UTC
libmcpp-2.7.2_6: 2014-06-08 12:00 CEST
libmms-0.6.4_1: 2014-09-08 09:53 UTC
libmng-2.0.3_1: 2015-04-22 05:34 UTC
libmpcdec-1.2.6_5: 2014-02-20 18:12 CET
libmpeg2-0.5.1_9: 2014-11-23 09:50 UTC
libnih-1.0.3_3: 2015-05-28 05:46 UTC
libopenjpeg-1.5.2_1: 2014-11-28 07:51 UTC
libosmgpsmap-1.1.0_2: 2015-12-24 07:11 UTC
libraptor-2.0.15_1: 2014-11-02 19:24 UTC
librecode-3.6_8: 2014-10-13 09:03 UTC
libspiro-0.5.20150702_1: 2015-07-02 14:38 UTC
libsysfs-2.1.0_6: 2014-02-16 18:57 CET
libtheora-1.1.1_7: 2014-06-08 11:32 CEST
libunique1-1.1.6_8: 2014-11-16 09:27 UTC
libupower-glib1-0.9.23_10: 2015-10-14 07:52 UTC
libusb-compat-0.1.5_6: 2015-08-19 13:57 UTC
libusbmuxd-1.0.10_1: 2014-11-14 10:27 UTC
libvisual-0.4.0_8: 2014-04-05 01:08 CEST
libwmf-0.2.8.4_17: 2014-04-04 14:20 CEST
libwnck2-2.30.7_5: 2014-01-28 10:51 CET
libwv-1.2.9_3: 2014-06-08 12:27 CEST
libxfce4ui-4.12.1_2: 2015-07-10 23:18 UTC
libxfce4util-4.12.1_2: 2015-06-02 22:31 UTC
makepasswd-1.10.9_1: 2015-06-07 04:42 UTC
man-pages-posix-2013a_3: 2015-12-16 17:01 UTC
mcpp-2.7.2_6: 2014-06-08 12:00 CEST
mime-types-9_2: 2014-11-23 08:39 UTC
mkfontdir-1.0.7_2: 2014-02-21 15:06 CET
mozjs17-17.0.0_6: 2015-11-28 23:47 UTC
netcat-0.7.1_6: 2015-10-31 12:36 UTC
numlockx-1.2_3: 2015-08-29 14:50 UTC
odt2txt-0.5_2: 2015-05-13 15:39 UTC
oxygen-icons-4.14.3_1: 2015-05-23 08:46 UTC
paps-0.6.8_4: 2015-05-13 15:39 UTC
perl-Class-Data-Inheritable-0.08_1: 2015-10-22 15:23 UTC
perl-Convert-BinHex-1.125_1: 2015-11-21 19:50 UTC
perl-Crypt-PasswdMD5-1.40_2: 2015-06-23 12:30 UTC
perl-Data-Dump-1.23_1: 2015-06-24 14:32 UTC
perl-Encode-Locale-1.05_1: 2015-06-24 14:32 UTC
perl-ExtUtils-Depends-0.405_1: 2015-12-02 08:19 UTC
perl-File-Listing-6.04_4: 2014-09-29 15:07 UTC
perl-HTML-Tagset-3.20_6: 2014-09-29 15:08 UTC
perl-HTTP-Daemon-6.01_4: 2014-09-29 15:09 UTC
perl-HTTP-Date-6.02_4: 2014-09-29 15:06 UTC
perl-HTTP-Negotiate-6.01_4: 2014-09-29 15:09 UTC
perl-IO-String-1.08_1: 2015-07-16 22:48 UTC
perl-IO-stringy-2.111_1: 2015-04-29 05:27 UTC
perl-LWP-MediaTypes-6.02_4: 2014-09-29 15:08 UTC
perl-Linux-Distribution-0.23_1: 2015-07-16 22:52 UTC
perl-Set-IntSpan-1.19_1: 2015-07-16 22:48 UTC
perl-Sub-Exporter-0.987_2: 2014-09-29 15:55 UTC
perl-Sub-Install-0.928_2: 2014-09-29 15:54 UTC
perl-TimeDate-2.30_2: 2014-09-29 15:52 UTC
perl-WWW-RobotRules-6.02_4: 2014-09-29 15:11 UTC
pidgin-gpg-0.9_3: 2014-06-06 11:25 CEST
polkit-qt5-0.112.0_2: 2015-07-27 11:32 UTC
portmidi-217_1: 2014-07-12 02:15 CEST
rtkit-0.11_12: 2015-07-24 08:54 UTC
sbc-1.3_1: 2014-11-21 08:46 UTC
setxkbmap-1.3.1_1: 2015-04-18 05:29 UTC
smproxy-1.0.6_1: 2015-04-18 05:30 UTC
socklog-2.1.0_4: 2015-07-25 23:51 UTC
speexdsp-1.2rc3_1: 2015-01-21 11:59 UTC
startup-notification-0.12_9: 2014-02-16 19:16 CET
thunar-volman-0.8.1_2: 2015-10-14 08:01 UTC
toluapp-1.0.93_1: 2015-11-05 04:40 UTC
tree-1.7.0_2: 2015-06-03 13:59 UTC
vorbis-tools-1.4.0_3: 2014-11-03 16:51 UTC
vte-0.28.2_14: 2015-08-18 12:06 UTC
vte-python-0.28.2_14: 2015-08-18 12:06 UTC
wifi-firmware-1.3_1: 2014-02-16 10:49 CET
wireless_tools-29_8: 2015-08-18 12:05 UTC
x11perf-1.6.0_1: 2015-04-19 05:20 UTC
xcb-util-0.4.0_1: 2014-10-15 07:48 UTC
xcb-util-image-0.4.0_1: 2014-10-15 07:49 UTC
xcb-util-keysyms-0.4.0_1: 2014-10-02 04:21 UTC
xcb-util-renderutil-0.3.9_1: 2014-06-13 08:32 CEST
xcmsdb-1.0.5_1: 2015-04-20 10:19 UTC
xcursorgen-1.0.6_1: 2014-06-01 16:43 CEST
xdg-user-dirs-gtk-0.10_2: 2014-06-05 00:29 CEST
xdpyinfo-1.3.2_1: 2015-04-19 05:22 UTC
xev-1.2.2_1: 2015-04-19 05:22 UTC
xfce4-appfinder-4.12.0_1: 2015-03-01 10:13 UTC
xfwm4-themes-4.10.0_2: 2014-06-04 15:58 CEST
xgamma-1.0.6_1: 2015-04-19 05:21 UTC
xhost-1.0.7_1: 2015-04-19 05:20 UTC
xinetd-2.3.15_6: 2015-05-31 10:32 UTC
xinput-1.6.2_1: 2015-10-20 06:49 UTC
xkbevd-1.1.4_1: 2015-04-19 05:22 UTC
xlsatoms-1.1.2_1: 2015-04-20 10:18 UTC
xmlcatmgr-2.2_3: 2014-02-15 07:16 CET
xmlstarlet-1.6.1_1: 2015-06-17 10:00 UTC
xmodmap-1.0.9_1: 2015-04-18 05:31 UTC
xorg-7.6_4: 2015-05-09 05:59 UTC
xorg-cf-files-1.0.6_1: 2015-12-25 00:10 UTC
xtrans-1.3.5_1: 2014-09-24 07:17 UTC
xvinfo-1.1.3_1: 2015-05-21 09:13 UTC
yajl-2.1.0_3: 2015-09-13 07:11 UTC
yasm-1.3.0_1: 2014-08-12 07:28 CEST
pullmoll commented 6 years ago

Out of these only packages which link against libstdc++ could perhaps be affected. For example SDL is C only AFAIR and as such won't be affected.

It may still be useful to rebuild the packages with gcc-7.3.0_4. I'll do some more testing once I finished my local staging issues.

Johnnynator commented 6 years ago
mozjs17
lensfun
id3lib
groff
glu
ganv
fluxbox
dvd+rw-tools
cln

These 11 packages should be the only ones out of @newbluemoon list that have libstdc++ as dependecy.

pullmoll commented 6 years ago

I saw this error here too. Do the builders pick up the gcc-7.3.0_4 or do they need to be bootstrapped? llvm and libGL built ok here.

pullmoll commented 6 years ago

It seems we need to either rebuild all the libGL dependencies (one of which causes the problems) or define _GLIBCXX_USE_CXX11_ABI=0 to get libGL built again.

FWIW with i686-musl, where I had built all dependencies with gcc-7.3.0_4 I can (actually must) remove the -D_GLIBCXX_USE_CXX11_ABI=0 from the CXXFLAGS.

pullmoll commented 6 years ago

Ok, that's not yet sufficient: after rebuilding elfutils and libvdpau with gcc-7.3.0_4 I can't remove the -D_GLIBCXX_USE_CXX_ABI=0 from the libGL template. So it has to be one or more of the other dependencies :-P

pullmoll commented 6 years ago

Sadly libGL still does not build with the CXX11 ABI when using the repository dependencies. It builds fine here with all packages built with gcc-7.3.0_4. A nested (2nd level) depedency has to be the cause for this.

  CXXLD    pipe_r300.la
../../../../src/gallium/auxiliary/.libs/libgallium.a(lp_bld_misc.o): In function `llvm::RTDyldMemoryManager::getSymbolAddress(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
lp_bld_misc.cpp:(.text._ZN4llvm19RTDyldMemoryManager16getSymbolAddressERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN4llvm19RTDyldMemoryManager16getSymbolAddressERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x4): undefined reference to `llvm::RTDyldMemoryManager::getSymbolAddressInProcess(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../../../../src/gallium/auxiliary/.libs/libgallium.a(lp_bld_misc.o): In function `llvm::RTDyldMemoryManager::findSymbol(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
lp_bld_misc.cpp:(.text._ZN4llvm19RTDyldMemoryManager10findSymbolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN4llvm19RTDyldMemoryManager10findSymbolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x1e): undefined reference to `llvm::RTDyldMemoryManager::getSymbolAddressInProcess(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../../../../src/gallium/auxiliary/.libs/libgallium.a(lp_bld_misc.o): In function `non-virtual thunk to llvm::RTDyldMemoryManager::findSymbol(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
lp_bld_misc.cpp:(.text._ZN4llvm19RTDyldMemoryManager10findSymbolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN4llvm19RTDyldMemoryManager10findSymbolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x6c): undefined reference to `llvm::RTDyldMemoryManager::getSymbolAddressInProcess(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:959: pipe_r300.la] Error 1
make[4]: *** Waiting for unfinished jobs....
../../../../src/gallium/auxiliary/.libs/libgallium.a(lp_bld_misc.o): In function `llvm::RTDyldMemoryManager::getSymbolAddress(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
lp_bld_misc.cpp:(.text._ZN4llvm19RTDyldMemoryManager16getSymbolAddressERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN4llvm19RTDyldMemoryManager16getSymbolAddressERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x4): undefined reference to `llvm::RTDyldMemoryManager::getSymbolAddressInProcess(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../../../../src/gallium/auxiliary/.libs/libgallium.a(lp_bld_misc.o): In function `llvm::RTDyldMemoryManager::findSymbol(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
lp_bld_misc.cpp:(.text._ZN4llvm19RTDyldMemoryManager10findSymbolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN4llvm19RTDyldMemoryManager10findSymbolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x1e): undefined reference to `llvm::RTDyldMemoryManager::getSymbolAddressInProcess(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../../../../src/gallium/auxiliary/.libs/libgallium.a(lp_bld_misc.o): In function `non-virtual thunk to llvm::RTDyldMemoryManager::findSymbol(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
lp_bld_misc.cpp:(.text._ZN4llvm19RTDyldMemoryManager10findSymbolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN4llvm19RTDyldMemoryManager10findSymbolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x6c): undefined reference to `llvm::RTDyldMemoryManager::getSymbolAddressInProcess(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:965: pipe_radeonsi.la] Error 1
../../../../src/gallium/auxiliary/.libs/libgallium.a(lp_bld_misc.o): In function `llvm::RTDyldMemoryManager::getSymbolAddress(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
lp_bld_misc.cpp:(.text._ZN4llvm19RTDyldMemoryManager16getSymbolAddressERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN4llvm19RTDyldMemoryManager16getSymbolAddressERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x4): undefined reference to `llvm::RTDyldMemoryManager::getSymbolAddressInProcess(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../../../../src/gallium/auxiliary/.libs/libgallium.a(lp_bld_misc.o): In function `llvm::RTDyldMemoryManager::findSymbol(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
lp_bld_misc.cpp:(.text._ZN4llvm19RTDyldMemoryManager10findSymbolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN4llvm19RTDyldMemoryManager10findSymbolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x1e): undefined reference to `llvm::RTDyldMemoryManager::getSymbolAddressInProcess(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../../../../src/gallium/auxiliary/.libs/libgallium.a(lp_bld_misc.o): In function `non-virtual thunk to llvm::RTDyldMemoryManager::findSymbol(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
lp_bld_misc.cpp:(.text._ZN4llvm19RTDyldMemoryManager10findSymbolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN4llvm19RTDyldMemoryManager10findSymbolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x6c): undefined reference to `llvm::RTDyldMemoryManager::getSymbolAddressInProcess(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:971: pipe_vmwgfx.la] Error 1
../../../../src/gallium/auxiliary/.libs/libgallium.a(lp_bld_misc.o): In function `llvm::RTDyldMemoryManager::getSymbolAddress(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
lp_bld_misc.cpp:(.text._ZN4llvm19RTDyldMemoryManager16getSymbolAddressERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN4llvm19RTDyldMemoryManager16getSymbolAddressERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x4): undefined reference to `llvm::RTDyldMemoryManager::getSymbolAddressInProcess(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../../../../src/gallium/auxiliary/.libs/libgallium.a(lp_bld_misc.o): In function `llvm::RTDyldMemoryManager::findSymbol(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
lp_bld_misc.cpp:(.text._ZN4llvm19RTDyldMemoryManager10findSymbolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN4llvm19RTDyldMemoryManager10findSymbolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x1e): undefined reference to `llvm::RTDyldMemoryManager::getSymbolAddressInProcess(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../../../../src/gallium/auxiliary/.libs/libgallium.a(lp_bld_misc.o): In function `non-virtual thunk to llvm::RTDyldMemoryManager::findSymbol(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
lp_bld_misc.cpp:(.text._ZN4llvm19RTDyldMemoryManager10findSymbolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN4llvm19RTDyldMemoryManager10findSymbolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x6c): undefined reference to `llvm::RTDyldMemoryManager::getSymbolAddressInProcess(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:968: pipe_swrast.la] Error 1
../../../../src/gallium/auxiliary/.libs/libgallium.a(lp_bld_misc.o): In function `llvm::RTDyldMemoryManager::getSymbolAddress(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
lp_bld_misc.cpp:(.text._ZN4llvm19RTDyldMemoryManager16getSymbolAddressERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN4llvm19RTDyldMemoryManager16getSymbolAddressERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x4): undefined reference to `llvm::RTDyldMemoryManager::getSymbolAddressInProcess(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../../../../src/gallium/auxiliary/.libs/libgallium.a(lp_bld_misc.o): In function `llvm::RTDyldMemoryManager::findSymbol(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
lp_bld_misc.cpp:(.text._ZN4llvm19RTDyldMemoryManager10findSymbolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN4llvm19RTDyldMemoryManager10findSymbolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x1e): undefined reference to `llvm::RTDyldMemoryManager::getSymbolAddressInProcess(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../../../../src/gallium/auxiliary/.libs/libgallium.a(lp_bld_misc.o): In function `non-virtual thunk to llvm::RTDyldMemoryManager::findSymbol(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
lp_bld_misc.cpp:(.text._ZN4llvm19RTDyldMemoryManager10findSymbolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN4llvm19RTDyldMemoryManager10findSymbolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x6c): undefined reference to `llvm::RTDyldMemoryManager::getSymbolAddressInProcess(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:956: pipe_nouveau.la] Error 1
make[4]: Leaving directory '/builddir/mesa-18.1.4/src/gallium/targets/pipe-loader'
make[3]: *** [Makefile:619: all-recursive] Error 1
make[3]: Leaving directory '/builddir/mesa-18.1.4/src/gallium'
make[2]: *** [Makefile:879: all-recursive] Error 1
make[2]: Leaving directory '/builddir/mesa-18.1.4/src'
make[1]: *** [Makefile:664: all] Error 2
make[1]: Leaving directory '/builddir/mesa-18.1.4/src'
make: *** [Makefile:676: all-recursive] Error 1
=> ERROR: libGL-18.1.4_3: do_build: '${make_cmd} ${makejobs} ${make_build_args} ${make_build_target}' exited with 2
=> ERROR:   in do_build() at common/build-style/gnu-configure.sh:13
Gottox commented 6 years ago

It would be great if we could've done this in a more planned way. Now we have random package breakage in the next few weeks. I'd really wanted to avoid such situations.

pullmoll commented 6 years ago

The dependency graph of libGL xbps-dgraph -f libGL | dot -Tpng > libGL.png libgl

pullmoll commented 6 years ago

@Gottox I did not expect what was happening now and trying hard to get it done. Local testing suggested that everything was ok, but with the official repository the situation is different. I'm trying hard to recover ASAP from this.

bra1nwave commented 6 years ago

To rebuild gnuradio and volk, we first need to rebuild boost (https://github.com/gnuradio/volk/issues/92). I don't know if this will possibly break packages depending on boost.

Anyway, I redid my PR here. Locally everything builds and works as expected.

Gottox commented 6 years ago

recompiling boost will break even more stuff, but that's a hard pill we have to swallow now.

pullmoll commented 6 years ago

@bra1nwave IMO we should first get libGL built with the CXX11 ABI in place. Then we need to look for packages which need to be rebuilt for qt5 (supercollider, stellarium, ... the ones that suffered from the duplicate libstdc++/qt5 empty std::string instance).

Gottox commented 6 years ago

@pullmoll The first testbuild I did with libGL had finished without an error. trying a second one with a clean env now.

pullmoll commented 6 years ago

@Gottox keeping the gcc4 compatibility was the bad idea a couple of years ago, so we only delayed the trouble until now. Sorry for being such a trouble maker but I hope, in the end, we're on the right way again.

We would have been unable solve the increasing number of breakage due to CXX11 ABI incompatibilities rather sooner than later. stellarium was merely a trigger.

pullmoll commented 6 years ago

@gottox Did you remove the CXXFLAGS+=" -D_GLIBCXX_USE_CXX11_ABI=0 line?

Gottox commented 6 years ago

nope, let me retry.

pullmoll commented 6 years ago

It seems that /usr/include/llvm/ExecutionEngine/RTDyldMemoryManager.h is causing the failure. There virtual uint64_t getSymbolAddress(const std::string &Name) is defined (comment says DEPRECATED!) and this is where libGL fails to build with the official repo dependencies.

leahneukirchen commented 6 years ago

A quick and dirty test to see if a object file uses C++11 abi is to grep for _ZNSt7__cxx1112basic_string

Gottox commented 6 years ago

@pullmoll I disabled arm* builders on s01 so we have more free resources to get x86 through.

pullmoll commented 6 years ago

@Gottox ok. The revbumps won't take too long as most are tiny packages. What bugs me is that armv6l and armv7l were still staging packages because of libwayland-egl.so.1 (or similar)? staging on x86_64 builder should be solved with the revbump for pluseaudio-plugin-sndio.

pullmoll commented 6 years ago

I'm away for some time soon. Should building libGL with CXX11 ABI still fail after the dependencies are built, I can only imagine that llvm would require another revbump to get rid of stdc++ gcc4 remains.

Gottox commented 6 years ago

I try a local revbump if there's an error. Thanks for managing this issue though!

pullmoll commented 6 years ago

It still fscking fails to build with the official repository binary-bootstrap and packages here so there's still one dependecy left. Could that be a host dependeny?

Gottox commented 6 years ago

If it fails during build time it's unlikely that a host dependency is involved.

pullmoll commented 6 years ago

Since we're building native for x86_64, perhaps it's a file generated by a host tool. After all llvm is a host dependency.

Gottox commented 6 years ago

llvm wasn't build properly with the new ABI because they were pushed at once. bootstrap-update is only ran once a push, so after gcc was built, llvm was built against the older gcc. I revbumped llvm. Let's hope that fixes the issue.

pullmoll commented 6 years ago

Yep, that was the real problem. Now we can finally build libGL with the CXX11 ABI. Thanks @Gottox!

ghost commented 6 years ago

I think hunspell must be rebuilt, too. This morning I got this error while I was trying to update focuswriter to 1.6.15:

/usr/lib/gcc/x86_64-unknown-linux-gnu/7.3.0/../../../../lib/libQt5Network.so: warning: EVP_CipherFinal is often misused, please use EVP_CipherFinal_ex and EVP_CIPHER_CTX_cleanup
build/dictionary_provider_hunspell.o: In function `(anonymous namespace)::DictionaryHunspell::removeFromSession(QStringList const&)':
dictionary_provider_hunspell.cpp:(.text+0x2d9): undefined reference to `Hunspell::remove(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
build/dictionary_provider_hunspell.o: In function `(anonymous namespace)::DictionaryHunspell::addToSession(QStringList const&)':
dictionary_provider_hunspell.cpp:(.text+0x439): undefined reference to `Hunspell::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
build/dictionary_provider_hunspell.o: In function `(anonymous namespace)::DictionaryHunspell::check(QString const&, int) const':
dictionary_provider_hunspell.cpp:(.text+0x66c): undefined reference to `Hunspell::spell(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
build/dictionary_provider_hunspell.o: In function `(anonymous namespace)::DictionaryHunspell::suggestions(QString const&) const':
dictionary_provider_hunspell.cpp:(.text+0x1387): undefined reference to `Hunspell::suggest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
collect2: error: ld returned 1 exit status
make: *** [Makefile:471: focuswriter] Error 1
=> ERROR: focuswriter-1.6.15_1: do_build: '${make_cmd} ${makejobs} ${make_build_args} ${make_build_target} CC="$CC" CXX="$CXX" LINK="$CXX"' exited with 2
=> ERROR:   in do_build() at common/build-style/qmake.sh:29

Rebuilding hunspell locally fixed the issue for me!

Note: of course focuswriter won't start without installing the new libhunspell ...

$ focuswriter
focuswriter: symbol lookup error: focuswriter: undefined symbol: _ZN8Hunspell5spellERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPiPS5_

I hope that helps.

pullmoll commented 6 years ago

@cr6git there are probably more packages which need a rebuild now. Just revbump and push them if you find one.

pullmoll commented 6 years ago

Rebuilding packages broken after revbump of boost

Hmm, cppunit was rebuilt yet libreoffice building cppunittester still fails. Anyone has an idea what could be causing this?

Ok, no guesswork, just rebuild the dependencies ;-P

ghost commented 6 years ago

Hmm, cppunit

@pullmoll in Arch they added this patch when they upgraded to 6.0.5 ...

in Debian they have this patch ...

leahneukirchen commented 6 years ago

List of packages having stuff in my /usr/bin that uses old ABI:

pullmoll commented 6 years ago

@chneukirchen not all of these need to be rebuilt, e.g. ddrescue works just fine. I believe it's only packages which use libstdc++ std:string with the gcc4 compatibility mode which need to be rebuilt.

leahneukirchen commented 6 years ago

I'd recommend to rebuild them nevertheless.

Gottox commented 6 years ago

In a second tier we should rebuild all dependencies. But first priority are broken packages.

pullmoll commented 6 years ago

Sorry for causing that much of trouble. I really didn't expect that change to result in the trouble we're facing now. If we ever meet, you can relentlessly pour a (small) glas of beer over my head.

newbluemoon commented 6 years ago

@pullmoll In my opinion and what I can tell from the short time I’m here, you’ve done so much good that outweighs this trouble by far. Sure, this could have been handled differently, but hätte, hätte, Fahradkette! :) I always try to see the positive side of things: now this issue has finally been tackled, brute force, but it is what it is. :)

pullmoll commented 6 years ago

@newbluemoon Thank you for encouragement. I'm undoubtedly good at breaking things and always try to be almost as good at fixing afterwards. This incident, however, shows we need to instantiate some kind of policy on who, when is free to modify what kind of package. The user base of Void is currently not that large. Imagine what would've happened if thousands of users were isolated from using their essential, daily required packages for several days or even longer.

I need to take a lot more care when changing essential parts like this libstdc++ drop gcc4 compat thing... sigh Seems you're never old enough to have to listen to your lessons and adhere to them.

pbui commented 6 years ago

I believe chromium might need a rebuild, as I get the following error when I try to start it:

/usr/lib/chromium/chromium: symbol lookup error: /usr/lib/chromium/chromium: undefined symbol: _ZN3re23RE2C1ERKSs
Vintodrimmer commented 6 years ago

Rstudio too.

➤ rstudio
rstudio: symbol lookup error: rstudio: undefined symbol: _ZN5boost13match_resultsIN9__gnu_cxx17__normal_iteratorIPKcSsEESaINS_9sub_matchIS5_EEEE12maybe_assignERKS9_
Gottox commented 6 years ago

@pbui Chromium is fixed now. Thanks for noticing.

@pullmoll There's a proposal to add a list of packages that need special attention when changes are merged. see https://github.com/void-linux/void-packages/pull/208

@Vintodrimmer https://github.com/void-linux/void-packages/pull/1232

Gottox commented 6 years ago

What needs to be rebuild?

bra1nwave commented 6 years ago

@Gottox Ardour: https://github.com/void-linux/void-packages/pull/1223

CameronNemo commented 6 years ago

I'm still seeing errors with gladish (in package ladish). now fixed

RaphyJake commented 6 years ago

Cantata and Nomacs aren't working for me

Johnnynator commented 6 years ago

@RaphyJake Can you retest Nomacs, it is working fine for me locally. maxice8 already did rebuilt it.

lbolla commented 6 years ago

See reference to issue #1785 : potentially also wxWidgets needs rebuilding?

pullmoll commented 6 years ago

Since we have gcc-8.2.0 now, this issue is kind of obsolete. There will still be some packages requiring a rebuild. Just report them in case you are bitten by them.