Page MenuHomeFreeBSD

multimedia/libx264: add -znotext to LDFLAGS on i386, for lld

Authored by emaste on Sep 17 2018, 3:12 PM.



Example error:

/usr/bin/ld: error: can't create dynamic relocation R_386_PC32 against symbol: gettimeofday in readonly segment; recompile object files with -fPIC

This port links some non-PIC code, which fails with lld as it defaults to disallowing relocations against read-only segments. For i386 we can just add -znotext unconditionally: for GNU BFD ld it just affirms BFD's existing default.

Original version committed in rS479024, this review represents a preferred approach.

I am not a ports committer, so please explicitly mention approval for commit to the ports tree.

Diff Detail

rP FreeBSD ports repository
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

17 ↗(On Diff #48114)

Reverse line 17 and 18 so it’s declared before variable is used

The variable substitution/evaluation is done at the end so it works both ways; my natural tendency would be to put them in the other order but this was the one used in the first instance of this approach in review D16813 / rP478120 by @mmokhi.

Any change fixing this issue was (and is) explicitly approved (subject to @emaste confidence in solution/QA) per bugzilla issue comment:

This revision is now accepted and ready to land.Sep 18 2018, 3:02 AM
17 ↗(On Diff #48114)

Does this need to be wrapped in a if defined(${LDFLAGS_${ARCH}}) block to protect a failure if the variable is not defined for the ARCH the port is being built on?

tobik added inline comments.
17 ↗(On Diff #48114)

Why? ${LDFLAGS_${ARCH}} for some ARCH != i386 evals to an empty string, so all is good.

This revision was automatically updated to reflect the committed changes.