Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 615854 - media-libs/libpano13-2.9.19 fail to compile with undefined reference to `float2rgbe' and 'rgbe2float'
Summary: media-libs/libpano13-2.9.19 fail to compile with undefined reference to `floa...
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Graphics Project
Depends on:
Reported: 2017-04-17 14:15 UTC by Thierry De Leeuw
Modified: 2019-02-10 18:49 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---

emerge --info (emergeInfo,6.03 KB, text/plain)
2017-04-17 14:15 UTC, Thierry De Leeuw

Note You need to log in before you can comment on or make changes to this bug.
Description Thierry De Leeuw 2017-04-17 14:15:17 UTC
Created attachment 470252 [details]
emerge --info

When compiling the libpan13, I get the following errors
/tmp/portage/media-libs/libpano13-2.9.19/work/libpano13-2.9.19/.libs/ undefined reference to `float2rgbe'
/tmp/portage/media-libs/libpano13-2.9.19/work/libpano13-2.9.19/.libs/ undefined reference to `rgbe2float'

This is likely caused by the INLINE use in rgbe.h

INLINE void float2rgbe(unsigned char rgbe[4], float red, float green, float blue);
INLINE void rgbe2float(float *red, float *green, float *blue, unsigned char rgbe[4]);
Comment 1 Sven Müller 2017-05-26 12:13:45 UTC
Can confirm this error. As a workaround it helps to remove the INLINE keywords. 

For some reason it works with inline on my other machine, which has been updated more recently.
Comment 2 John Bowler 2018-09-20 23:22:35 UTC
I just saw this with gcc 7.3.0 and -Os.  It does, however, build with -O2.  This is because -Os inlines less frequently than -O2 and so the undefined references are from cases which did not get inlined.  Likely as not this will be compiler/version/option dependent.  I don't know if this is a gcc bug or a libpano13 bug.  My understanding was that if the compiler does not inline something it should include an out-of-line version in the object module.