On Thu, Jan 15, 2015 at 8:24 AM, Mike Stump <mikest...@comcast.net> wrote:
> So, I was hoping that someone would step forward and review this.  I’d like 
> for a reviewer to consider, is this the type of error messages we want to 
> vend to the poor user?  It strikes me as, well, icky.  Should -fPIE imply 
> -fPIC?

It is an optimization:

https://gcc.gnu.org/ml/gcc-cvs/2014-12/msg00206.html

If linker supports copy reloc in PIE, we turn off PIC for the data access.
Since the symbol is undefined in this case, linker complains.

> Exclusive of that issue, the patch is fine.

I will check it in.

Thanks.

> On Jan 11, 2015, at 4:23 PM, H.J. Lu <hjl.to...@gmail.com> wrote:
>> g++.dg/other/anon5.C is expected to fail to link.  On Linux/x86 with PIE,
>> there are additional messages linker:
>>
>> [hjl@gnu-tools-1 gcc]$ g++  -fPIE -pie
>> /export/gnu/import/git/sources/gcc/gcc/testsuite/g++.dg/other/anon5.C
>> /tmp/ccwg53fj.o: In function `f()': anon5.C:(.text+0x7): undefined reference 
>> to `(anonymous namespace)::c::t'
>> /usr/local/bin/ld: /tmp/ccwg53fj.o: relocation R_X86_64_PC32 against 
>> undefined symbol `_ZN12_GLOBAL__N_11c1tE' can not be used when making a 
>> shared object; recompile with -fPIC
>> /usr/local/bin/ld: final link failed: Bad value
>> collect2: error: ld returned 1 exit status
>> [hjl@gnu-tools-1 gcc]$
>>
>> This patch ignores additional messages on Linux/x86 with PIE.  OK for
>> trunk?
>>
>> Thanks.
>>
>> H.J.
>> ---
>> gcc/testsuite/g++.dg/other/anon5.C | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> 2015-01-11  H.J. Lu  <hongjiu...@intel.com>
>>
>>       * g++.dg/other/anon5.C: Ignore additional messages on Linux/x86
>>       with PIE.
>>
>> diff --git a/gcc/testsuite/g++.dg/other/anon5.C 
>> b/gcc/testsuite/g++.dg/other/anon5.C
>> index 81e9def..4e4cc44 100644
>> --- a/gcc/testsuite/g++.dg/other/anon5.C
>> +++ b/gcc/testsuite/g++.dg/other/anon5.C
>> @@ -3,6 +3,8 @@
>> // { dg-options "-g" }
>> // Ignore additional message on powerpc-ibm-aix
>> // { dg-prune-output "obtain more information" } */
>> +// Ignore additional messages on Linux/x86 with PIE
>> +// { dg-prune-output "Bad value" } */
>>
>> namespace {
>>   struct c



-- 
H.J.

Reply via email to