Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 878141

Summary: sci-libs/coinor-cgl-0.60.3 fails tests (lto): ld: libDylp.so: undefined reference to quiet_nan
Product: Gentoo Linux Reporter: Agostino Sarubbo <ago>
Component: Current packagesAssignee: Gentoo Science Related Packages <sci>
Status: RESOLVED FIXED    
Severity: normal    
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 618550    
Attachments: build.log

Description Agostino Sarubbo gentoo-dev 2022-10-24 06:57:17 UTC
https://blogs.gentoo.org/ago/2020/07/04/gentoo-tinderbox/

Issue: sci-libs/coinor-cgl-0.60.3 fails tests (lto).
Discovered on: amd64 (internal ref: lto_tinderbox)

NOTE:
This machine uses lto with CFLAGS=-flto -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing

Here is a bit of explanation:

-Werror=lto-type-mismatch:
User to find possible runtime issues in packages. It likely means the package is unsafe to build & use with LTO.
For projects using the same identifier but with different types across different files, they must be fixed to be consistent across the codebase.

-Werror=odr:
Used to find possible runtime issues in packages. These bugs are a problem anyway but may be even worse when combined with LTO. C++ code must comply with the One Definition Rule (ODR) - see https://en.cppreference.com/w/cpp/language/definition#One_Definition_Rule.

-Werror=strict-aliasing:
Used to find possible runtime issues in packages. These bugs are a problem anyway but may be even worse when combined with LTO.

Workarounds:
- If upstream is friendly and still active, file a bug upstream. For emulators, codecs, games, or multimedia packages, it may be worth just applying a workaround instead, as upstreams sometimes aren't receptive to these bugs (VALID FOR ALL).
- Use the new 'filter-lto' from flag-o-matic.eclass as it's likely to be unsafe with LTO (VALID FOR lto-type-mismatch - odr).
- Fix it yourself if interested, of course (VALID FOR ALL).
- Append-flags -fno-strict-aliasing (VALID FOR strict-aliasing).
- Use memcpy() but a union is sometimes suitable too (VALID FOR strict-aliasing).
- -fstrict-aliasing is implied by -O2, so this must be addressed in some form (VALID FOR strict-aliasing).

See also: https://marc.info/?l=gentoo-dev&m=165639574126280&w=2
Comment 1 Agostino Sarubbo gentoo-dev 2022-10-24 06:57:19 UTC
Created attachment 825165 [details]
build.log

build log and emerge --info
Comment 2 Agostino Sarubbo gentoo-dev 2022-10-24 06:57:22 UTC
Error(s) that match a know pattern in addition to what has been reported in the summary:


/usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/lib64/libDylp.so: undefined reference to `quiet_nan'
checking for COIN-OR package OsiCpx... not given: Package 'osi-cplex', required by 'virtual:world', not found
checking for COIN-OR package OsiGlpk... not given: Package 'osi-glpk', required by 'virtual:world', not found
checking for COIN-OR package OsiMsk... not given: Package 'osi-mosek', required by 'virtual:world', not found
checking for COIN-OR package OsiXpr... not given: Package 'osi-xpress', required by 'virtual:world', not found
collect2: error: ld returned 1 exit status
Comment 3 Larry the Git Cow gentoo-dev 2024-09-05 04:08:30 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=25c2cc32eaa4dee3d227ffb0665a1f1ac83c9249

commit 25c2cc32eaa4dee3d227ffb0665a1f1ac83c9249
Author:     Eli Schwartz <eschwartz@gentoo.org>
AuthorDate: 2024-09-03 21:23:01 +0000
Commit:     Eli Schwartz <eschwartz@gentoo.org>
CommitDate: 2024-09-05 04:07:44 +0000

    sci-libs/coinor-dylp: mark as LTO-unsafe
    
    It fails to compile correctly, tests fail, and the resulting library
    fails to link when other packages try to use it. The reason is because
    it checks for a SunOS symbol using an ancient autotools version that
    relies on UB to detect whether it exists, then tries to link to it.
    
    Upgrading autotools is complicated and the software is deprecated and in
    maintenance mode, so no telling when it may be released. There are
    commits in git master to update it but they are intermingled with
    updating to unreleased dependency versions?
    
    Closes: https://bugs.gentoo.org/862696
    Closes: https://bugs.gentoo.org/878141
    Closes: https://bugs.gentoo.org/878143
    Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>

 sci-libs/coinor-dylp/coinor-dylp-1.10.4-r1.ebuild | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)