Bugs in Archlinux32 packages, specific to 32-bit issues.

Bugs  FS#2  to  FS#92  have been recovered and may be incomplete, the
recovered Google/Bing cache data can be found here.

IDCategoryTask TypePrioritySeveritySummaryStatusProgress
345PackagesBug ReportVery LowLow[gcompris-qt] doesn't start due to Qt 5.15.10Unconfirmed
0%
Task Description

I fails to start with: “Cannot mix incompatible Qt library (5.15.9) with this library (5.15.10)”

333PackagesBug ReportVery LowHighSddm 0.19.0-9.0 crashes with Qt 5.15.9Assigned
0%
Task Description

The current version of sddm (0.19.0-9.0) depends on the previous version of Qt (5.15.8). After updating Qt, sddm crashes with an incompatible Qt library error.

282PackagesBug ReportMediumLow[qt5-webengine] fails with LTO and one definition ruleNew
0%
Task Description

After hours of compiling:

release/../../../../qtwebengine/src/3rdparty/chromium/base/memory/ref_counted.h:145:19: warning: type ‘struct RefCountedThreadSafeBase’ violates the C++ One Definition Ru
le [-Wodr]
  145 | class BASE_EXPORT RefCountedThreadSafeBase {
      |                   ^
/usr/src/debug/qtwebengine/src/3rdparty/chromium/base/memory/ref_counted.h:145:19: note: a different type is defined in another translation unit
/usr/src/debug/qtwebengine/src/3rdparty/chromium/base/memory/ref_counted.h:229:16: note: the first difference of corresponding 
definitions is field ‘needs_adopt_ref_’
/usr/src/debug/qtwebengine/src/3rdparty/chromium/base/memory/ref_counted.h:145:19: note: a type with different number of fields is defined in another translation unit
release/../../../../qtwebengine/src/3rdparty/chromium/base/memory/ref_counted.h:387:7: warning: type ‘struct RefCountedThreadSafe’ violates the C++ One Definition Rule [-
Wodr]
  387 | class RefCountedThreadSafe : public subtle::RefCountedThreadSafeBase {
      |       ^
/usr/src/debug/qtwebengine/src/3rdparty/chromium/base/memory/ref_counted.h:387:7: note: a type with different bases is defined in another translation unit
release/../../../../qtwebengine/src/3rdparty/chromium/base/memory/ref_counted.h:387:7: warning: type ‘struct RefCountedThreadSafe’ violates the C++ One Definition Rule [-Wodr]
  387 | class RefCountedThreadSafe : public subtle::RefCountedThreadSafeBase {
      |       ^
/usr/src/debug/qtwebengine/src/3rdparty/chromium/base/memory/ref_counted.h:387:7: note: a type with different bases is defined in another translation unit
/usr/src/debug/qtwebengine/src/core/net/cookie_monster_delegate_qt.h:87:38: warning: type ‘struct CookieMonsterDelegateQt’ violates the C++ One Definition Rule [-Wodr]
/usr/src/debug/qtwebengine/src/core/net/cookie_monster_delegate_qt.h:87:38: note: a type with different bases is defined in another translation unit
/usr/src/debug/qtwebengine/src/core/net/cookie_monster_delegate_qt.h:104:10: warning: type of ‘setCookie’ does not match original declaration [-Wlto-type-mismatch]
/usr/src/debug/qtwebengine/src/core/net/cookie_monster_delegate_qt.cpp:134:6: note: ‘setCookie’ was previously declared here
/usr/src/debug/qtwebengine/src/core/net/cookie_monster_delegate_qt.cpp:134:6: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/usr/src/debug/qtwebengine/src/core/net/cookie_monster_delegate_qt.h:113:10: warning: type of ‘setHasFilter’ does not match original declaration [-Wlto-type-mismatch]
/usr/src/debug/qtwebengine/src/core/net/cookie_monster_delegate_qt.cpp:212:6: note: ‘setHasFilter’ was previously declared here
/usr/src/debug/qtwebengine/src/core/net/cookie_monster_delegate_qt.cpp:212:6: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/usr/src/debug/qtwebengine/src/core/net/cookie_monster_delegate_qt.h:108:10: warning: type of ‘deleteAllCookies’ does not match original declaration [-Wlto-type-mismatch]
/usr/src/debug/qtwebengine/src/core/net/cookie_monster_delegate_qt.cpp:183:6: note: ‘deleteAllCookies’ was previously declared here
/usr/src/debug/qtwebengine/src/core/net/cookie_monster_delegate_qt.cpp:183:6: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/usr/src/debug/qtwebengine/src/core/net/cookie_monster_delegate_qt.h:107:10: warning: type of ‘deleteSessionCookies’ does not match original declaration [-Wlto-type-mismatch]
/usr/src/debug/qtwebengine/src/core/net/cookie_monster_delegate_qt.cpp:171:6: note: ‘deleteSessionCookies’ was previously declared here
/usr/src/debug/qtwebengine/src/core/net/cookie_monster_delegate_qt.cpp:171:6: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/usr/src/debug/qtwebengine/src/core/net/cookie_monster_delegate_qt.h:105:10: warning: type of ‘deleteCookie’ does not match original declaration [-Wlto-type-mismatch]
/usr/src/debug/qtwebengine/src/core/net/cookie_monster_delegate_qt.cpp:158:6: note: ‘deleteCookie’ was previously declared here
/usr/src/debug/qtwebengine/src/core/net/cookie_monster_delegate_qt.cpp:158:6: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/usr/src/debug/qtwebengine/src/core/net/cookie_monster_delegate_qt.h:106:10: warning: type of ‘getAllCookies’ does not match original declaration [-Wlto-type-mismatch]
/usr/src/debug/qtwebengine/src/core/net/cookie_monster_delegate_qt.cpp:129:6: note: ‘getAllCookies’ was previously declared here
/usr/src/debug/qtwebengine/src/core/net/cookie_monster_delegate_qt.cpp:129:6: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/usr/src/debug/qtwebengine/src/core/net/cookie_monster_delegate_qt.h:102:10: warning: type of ‘hasCookieMonster’ does not match original declaration [-Wlto-type-mismatch]
/usr/src/debug/qtwebengine/src/core/net/cookie_monster_delegate_qt.cpp:124:6: note: ‘hasCookieMonster’ was previously declared here
/usr/src/debug/qtwebengine/src/core/net/cookie_monster_delegate_qt.cpp:124:6: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/usr/src/debug/qtwebengine/src/core/api/qwebenginecallback_p.h:136:12: warning: virtual table of type ‘struct CallbackSharedDataPointer’ violates one definition rule [-Wodr]
/usr/src/debug/qtwebengine/src/core/api/qwebenginecallback_p.h:136:12: note: the conflicting type defined in another translation unit has virtual table with more entries
/usr/src/debug/qtwebengine/src/core/api/qwebenginecallback_p.h:136:12: warning: virtual table of type ‘struct CallbackSharedDataPointer’ violates one definition rule [-Wodr]
/usr/src/debug/qtwebengine/src/core/api/qwebenginecallback_p.h:136:12: note: the conflicting type defined in another translation unit has virtual table with more entries
/usr/src/debug/qtwebengine/src/core/api/qwebenginecallback_p.h:136:12: warning: virtual table of type ‘struct CallbackSharedDataPointer’ violates one definition rule [-Wodr]
/usr/src/debug/qtwebengine/src/core/api/qwebenginecallback_p.h:136:12: note: the conflicting type defined in another translation unit has virtual table with more entries
/usr/src/debug/qtwebengine/src/core/api/qwebenginecallback_p.h:136:12: warning: virtual table of type ‘struct CallbackSharedDataPointer’ violates one definition rule [-Wodr]
/usr/src/debug/qtwebengine/src/core/api/qwebenginecallback_p.h:136:12: note: the conflicting type defined in another translation unit has virtual table with more entries
/usr/src/debug/qtwebengine/src/core/api/qwebenginecallback_p.h:136:12: warning: virtual table of type ‘struct CallbackSharedDataPointer’ violates one definition rule [-Wodr]
/usr/src/debug/qtwebengine/src/core/api/qwebenginecallback_p.h:136:12: note: the conflicting type defined in another translation unit has virtual table with more entries
during RTL pass: pro_and_epilogue
release/gen/services/network/public/mojom/content_security_policy.mojom.h: In member function ‘Clone’:
release/gen/services/network/public/mojom/content_security_policy.mojom.h:1666:1: internal compiler error: in find_oldest_value_reg, at regcprop.cc:460

This is sort of unmaintainable..

243PackagesBug ReportVery LowMedium[linux and linux-zen] 5.16.12 needs a rebuild with gcc...New
0%
Task Description

[linux and linux-zen] 5.16.12 needs a rebuild with gcc 11.2 so DKMS packages will work

get errors when dkms installing in make log

cc1: error: incompatible gcc/plugin versions
cc1: error: failed to initialize plugin ./scripts/gcc-plugins/structleak_plugin.so

240PackagesBug ReportMediumLow[qt5-base] i486 builds run out of memory due to LTONew
0%
Task Description

LTO is hard to switch off, there are flags doing nothing, I see errors like

lto-wrapper: fatal error: write: No space left on device

82Packages: StableBug ReportMediumLow[glibc] ld warning: /usr/lib32/ld-linux.so.2: corrupt G...New
0%
Task Description

Attached to Project: Archlinux32
Opened by Jeff Hodd - 11.07.2019
Last edited by Andreas Baumann - 09.08.2019
FS#82 - [glibc] ld warning: /usr/lib32/ld-linux.so.2: corrupt GNU_PROPERTY_TYPE (5) size: 0

All software builds are producing this warning. Some builds are failing because of the error return on linking. I’m also seeing failures on LD_PRELOADs.

/bin/ld: warning: /usr/lib/ld-linux.so.2: corrupt GNU_PROPERTY_TYPE (5) size: 0

Easy to reproduce. Just build this program:

# test.c
# Compiled with ‘gcc test.c’ int main() {

  return 0;

}

This was reported at bugs.archlinux.org (reference https://bugs.archlinux.org/task/63015) where it was closed and considered fixed if built using the –enable-cet flag. I built glibc with the –enable-cet flag, but am still seeing the failures, so not fixed.
Closed by Andreas Baumann
09.08.2019 11:44
Reason for closing: Fixed

  Comments (6)
  Related Tasks (0/0)

Jeff Hodd commented on 16.07.2019 03:29

I’ve narrowed down the glibc upgrade to glibc-2.29-1.26 -> glibc-2.29-1.27. The error doesn’t occur with glibc-2.29-1.26. There were 3 changes made to the arch32 PKGBUILD for the glibc-2.29-1.27 release. One of them caused this issue.
Admin
Andreas Baumann commented on 16.07.2019 05:33

There is another thing which can change: the toolchain.
This GNU_PROPERTY error is something the compiler emits (we think it’s CET stuff, but it’s badly
documented). Binutils ld seems not to like this ELF section.

The error is the same as in:

https://bugs.archlinux.org/task/63015

What’s puzzling me: –enable-cet is there in glibc, gcc, binutils (just not for i486, as CET doesn’t\
work for older CPUs).

Commit: 09d03cbd4c57b8eabfadd22b67929d958b2409d7 and d57a456faa674c24e8869a26a14c497c95accf1f in
glibc are mine, they try to change stack alignment and handling of SSE for pentium4 for Java, also without effect.
Admin
Andreas Baumann commented on 16.07.2019 05:35

About linker warnings being turned to errors (as for compiler warnings turned to errors): this
is something the DEVELOPER should do, NOT the PACKAGER. Released software should:
- NOT include asserts
- NOT include debug code
- NOT include code only used for running tests
- NOT use -Werror
- NOT use -Wl,–fatal-warnings

See for instance extra-cmake-modules-5.59.0-ld-no-fatal-warning.patch.
Jeff Hodd commented on 16.07.2019 21:50

I knew about the cet issue. Did quite abit of looking around to get some insight into it (even looked at the code - elf-properties.c - and it looks like the Elf_Internal_Note description size is coming back with a value of 0. the other possibility is that (size % 4) is something other than 0 which is less likely). From what i could gather, cet is supposed to be enabled in the latest builds of glibc for i686 even though, as you pointed out, it’s not well documented. I did do a 2.29-4 i686 build with cet enabled and it made no difference vis-a-vis the warning. I also checked the upstream diff between 2.29-1.26 and 2.29-1.27 and noticed the addition of –enable-static-pie and thought maybe position independent executables may explain it. Did another glibc build with static pie disabled and that made no difference. Am about to go back and check the diff again and see what else may have changed.

I did check the CMakeLists.txt file for my failing build and it uses -Werror and -Wl,–fatal-warnings so I will remove those. But that doesn;t actually fix the underlying issue of the warning which we shouldn;t be seeing.

It is up to the developer, but too often one has to show that a change fixes an issue before you’ll get any attention. I may not be THE developer for this particular package, but I am A developer (in general), so I don;t feel uncomfortable making code changes.

I’ll keep looking around for differences between the 1.26 and 1.27 builds.
Jeff Hodd commented on 16.07.2019 22:15

if (note->descsz < 8 || (note->descsz % align_size) != 0)

  {

bad_size:

    _bfd_error_handler
(_("warning: %pB: corrupt GNU_PROPERTY_TYPE (%ld) size: %#lx"),
 abfd, note->type, note->descsz);
    return FALSE;
  }

The warning is printing out the description size - and that’s 0.

Apparently it’s supposed to be >= 8 and divisible by 4:

unsigned int align_size = bed->s->elfclass == ELFCLASS64 ? 8 : 4;

I am assuming that arch32 doesn’t support ELFCLASS64.
Jeff Hodd commented on 22.07.2019 17:13

https://bbs.archlinux32.org/viewtopic.php?id=2770

Google Cache

Showing tasks 1 - 6 of 6 Page 1 of 1

Available keyboard shortcuts

Tasklist

Task Details

Task Editing