"#pragma weak" symbol is 0 even when defined
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
binutils (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
gcc-defaults (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
libidn (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
libunistring (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
This compiler bug is making the gnulib tests dump core; see:
http://
Compile and run the following program t.c with the shell commands "gcc u.c -lm; ./a.out; echo $?"
#include <math.h>
#pragma weak tgamma
int
main (void)
{
if (!tgamma)
return 2;
if (tgamma (1) == 1)
return 0;
return 1;
}
The program will exit with status 2. It should exit with status 0, because the math library does have a tgamma function and the function pointer should be non-null.
I observe this problem with Ubuntu 14.04 x86-64 (GCC Ubuntu 4.8.2-19ubuntu1), but not on Fedora 20 or on RHEL 6.5.
ProblemType: Bug
DistroRelease: Ubuntu 14.04
Package: gcc 4:4.8.2-1ubuntu6
ProcVersionSign
Uname: Linux 3.13.0-30-generic x86_64
ApportVersion: 2.14.1-0ubuntu3.2
Architecture: amd64
CurrentDesktop: Unity
Date: Thu Jul 10 07:39:11 2014
InstallationDate: Installed on 2012-12-21 (566 days ago)
InstallationMedia: Ubuntu 12.10 "Quantal Quetzal" - Release amd64 (20121017.5)
SourcePackage: gcc-defaults
UpgradeStatus: Upgraded to trusty on 2014-04-18 (83 days ago)
this seems to be the reason for libunistring and libidn failures