Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 25 Sep 2008 20:50:43 GMT
From:      Jonathan Briggs <zlynx@acm.org>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   amd64/127640: GCC will not build shared libraries with -fprofile-generate on amd64
Message-ID:  <200809252050.m8PKohFr095842@www.freebsd.org>
Resent-Message-ID: <200809252100.m8PL0310007967@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         127640
>Category:       amd64
>Synopsis:       GCC will not build shared libraries with -fprofile-generate on amd64
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-amd64
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Sep 25 21:00:03 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Jonathan Briggs
>Release:        7.0-RELEASE
>Organization:
>Environment:
FreeBSD freebsd64 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Sun Feb 24 10:35:36 UTC 2008     root@driscoll.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64

>Description:
I was porting a specialized database library to FreeBSD and the build failed with this error:

/usr/bin/ld: /usr/lib/libgcov.a(_gcov_merge_add.o): relocation R_X86_64_32 can not be used when making a shared object; recompile with -fPIC
/usr/lib/libgcov.a: could not read symbols: Bad value

The library uses -fprofile-generate, runs a test set, then rebuilds with -fprofile-use.  It's worth a few ms per lookup.

Also, this builds very well on i386 FreeBSD 7.0 and on many varieties of Linux and their GCC builds (Debian ia64, Gentoo amd64, CentOS 5.2, Fedora 5, 8, 9).

I can work around the problem by just not doing a profile build.
>How-To-Repeat:
Put the following in a shell script:

#!/bin/sh
cat <<EOF |
#include <stdio.h>

int counter(int count)
{
	int i;

	for(i=0; i<count; i++) {
		printf("loop %d\n", i);
	}
	return i;
}
EOF
gcc -O2 -shared -fprofile-generate -fPIC -o t1.so -x c -

>Fix:


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200809252050.m8PKohFr095842>