Closed
Bug 1516830
Opened 6 years ago
Closed 6 years ago
LLD may require -fPIC for -fstack-protector-strong -Wl,-z,nocopyreloc
Categories
(Firefox Build System :: General: Unsupported Platforms, defect, P5)
Firefox Build System
General: Unsupported Platforms
Unspecified
FreeBSD
Tracking
(firefox-esr60 unaffected, firefox64 unaffected, firefox65 fix-optional, firefox66 fix-optional)
RESOLVED
DUPLICATE
of bug 1513605
Tracking | Status | |
---|---|---|
firefox-esr60 | --- | unaffected |
firefox64 | --- | unaffected |
firefox65 | --- | fix-optional |
firefox66 | --- | fix-optional |
People
(Reporter: jbeich, Unassigned)
References
Details
(Keywords: regression)
$ c++ -v
FreeBSD clang version 7.0.1 (tags/RELEASE_701/final 349250) (based on LLVM 7.0.1)
Target: x86_64-unknown-freebsd13.0
Thread model: posix
InstalledDir: /usr/bin
$ c++ -Wl,--version
LLD 7.0.1 (FreeBSD 349250-1300001) (compatible with GNU linkers)
$ ./mach bootstrap
$ ./mach build
[...]
checking for clock_gettime(CLOCK_MONOTONIC)... no
[...]
mozbuild.frontend.reader.BuildReaderError:
==============================
FATAL ERROR PROCESSING MOZBUILD FILE
==============================
The error occurred while processing the following file:
mozglue/misc/moz.build
A moz.build file called the error() function.
The error it encountered is:
No TimeStamp implementation on this platform. Build will not succeed
Correct the error condition and try again.
$ cat >a.cc
#include <time.h>
int main() {
struct timespec ts;
clock_gettime(CLOCK_MONOTONIC, &ts);
return 0;
}
$ c++ -fstack-protector-strong -Wl,-z,nocopyreloc a.cc
ld: error: unresolvable relocation R_X86_64_PC32 against symbol '__stack_chk_guard'; recompile with -fPIC or remove '-z nocopyreloc'
>>> defined in /lib/libc.so.7
>>> referenced by a.cc
>>> /tmp/a-850f56.o:(main)
c++: error: linker command failed with exit code 1 (use -v to see invocation)
Comment 1•6 years ago
|
||
The error message is telling you that `a.o` was created with the expectation that __stack_chk_guard would be statically linked in, and that __stack_chk_guard is actually available in some shared library. I don't think this is a linker problem: it's either a problem somewhere in the compiler and/or assembler, or the system setup that should have provided __stack_chk_guard in a statically-linkable library somewhere for the non-PIC case (?).
Updated•6 years ago
|
I can't reproduce anymore.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → DUPLICATE
Updated•6 years ago
|
Priority: -- → P5
You need to log in
before you can comment on or make changes to this bug.
Description
•