This is required to build Arm64 packages using QEMU. Poudriere copies
the native ld from the host into the jail and uses that during the build.
This only works if ld is static.
Reported by: krion
Approved by: bapt
Clang 3.9.0 changes how weak extern is handled. They now use the got to
handle them. This is a problem as ld.bfd doesn't fill out any default value
in the got so pointers become NULL. This caused the kernel to fail to boot
as we use this in linker sets.
This fixes the issue by setting a default value in the got. The kernel
still loads data through it, but because we always load it at a fixed
virtual address the address it finds is valid.
Approved by: bapt
Differential Revision: https://reviews.freebsd.org/D8622
Some binaries were added by the fact all targets have been enabled. This causes
conflicts with other tools. Given those binaries are already provided by the
mingw32-binutils there is no need for this one to provide them as well
Add a cross buildable binutils package.
The new category is not linked to the regular ports tree to avoid make install,
poudriere and others to catch it automagically
instead of ending with a very complex file removal in the stage, prefer to use
specific plist per arch.
For now only sparc64 tested and added. This version of binutils is stipped down
only the components that are not supported by elftoolchain
Remove aarch64 patches which are now upstream
Disable new x86 relocation to avoid incompatibilities with the old base binutils
Activate all targets on the default binutils (requested by royger@)
Add a RELRO option (default off) to be able to define the default behaviour of
ld(1) on passing or not -z relro
Farnsworth: "Good news, everyone!" The latest revisions of LLVM trunk
not only have a version of LLD that creates usable binaries for x86-64
and aarch64, it also does a better job at creating Position Independent
Executables than the GNU linker.
Because PIE is going to become pretty important for some of the upcoming
projects (emulation on other OSes), I'd like to go ahead and switch the
cloudabi-toolchain port over to the latest snapshot of LLVM. My goal is
to revert back to a stable version (3.9) when available.
Switching to LLD involves patching up the Binutils ports to no longer
install the GNU linker (and remove the linker scripts that it uses). We
can then simply add a couple of extra symlinks to cloudabi-toolchain to
point to the LLD binary.
At the same time, let's switch over to using the ELF toolchain tools on
FreeBSD 11. That way we can even drop the dependency on Binutils on
those systems.
Reviewed by: bapt, emaste
Differential Revision: https://reviews.freebsd.org/D5874
For CloudABI I slowly want to switch away from certain tools provided by
Binutils. For example, it would be really nice if we could switch from
GNU ld to LLD some time in the future. LLD is not ready yet. Some bug
fixes didn't manage to land into 3.8 and it doesn't support aarch64
properly. There are already some tools that we can use, such as nm,
objdump, size, ar and ranlib.
Introduce a BUREMOVE variable that can be set in Binutils slave ports to
remove specific utilities that are installed by default. There doesn't
seem to be any other elegant way to solve this. Set a bunch of utilities
by default and then extend cloudabi-clang to set up symlinks to the LLVM
versions of the tools.
Reviewed by: bapt
Differential Revision: https://reviews.freebsd.org/D5684
binutils has build issues on 10.x i386 and is full of regressions on 9.x:
unexpected build failures on nss and others
Reported by: antoine
Pointyhat to: bapt
- Replace ${MASTER_SITE_FOO} with FOO.
- Merge MASTER_SITE_SUBDIR into MASTER_SITES when possible. (This means 99.9%
of the time.)
- Remove occurrences of MASTER_SITE_LOCAL when no subdirectory was present and
no hint of what it should be was present.
- Fix some logic.
- And generally, make things more simple and easy to understand.
While there, add magic values to the FESTIVAL, GENTOO, GIMP, GNUPG, QT and
SAMBA macros.
Also, replace some EXTRACT_SUFX occurences with USES=tar:*.
Checked by: make fetch-urlall-list
With hat: portmgr
Sponsored by: Absolight
similar to https://svnweb.freebsd.org/base?view=revision&revision=274856
This fixes possible "invalid constant after fixup" errors from gas, when
it has been compiled with high levels of optimization.
Obtained from: binutils commit d840c081f8082e8b9e63fead5306643975a97bb3
PR: 197806
Approved by: maintainer (bapt)
I forgot that this port was already fixed in arguably a better way:
In dports, the Makefile.DragonFly file contains this:
.if ${DFLYVERSION} > 300702
CONFIGURE_ARGS+= --with-lib-path=/lib:/usr/lib
.endif
The main makefile should probably have the CONFIGURE_ARGS+= line
added to it unconditionally because it doesn't make sense to
search /usr/local/lib when PORTSDIR != /usr/local.
So DragonFly is fine with the original fix, but FreeBSD should
look at taking it. I don't think the DFLYVERSION needs to be checked
either.