Use HOSTARCH to set CONFIGURE_TARGET instead of ARCH.
Reported by: Mark Millard
Approved by: bapt (maintainer)
Differential Revision: https://reviews.freebsd.org/D19484
- Don't require CROSS_TOOLCHAIN and CROSS_SYSROOT.
- Handle building for an amd64 target which needs x86_64 in
CONFIGURE_TARGET for similar reasons described in r475291.
Reviewed by: bapt
Differential Revision: https://reviews.freebsd.org/D19129
The default library search directories when building a native GCC end
up falling back to /usr/local/lib (for devel/*-gcc) and /usr/lib (for
base/gcc) even when --sysroot is used. For devel/*-gcc, I previously
forced CROSS_DIRECTORY_STRUCTURE on in r466699 to workaround this.
However, this solution could not be used for base/gcc. Instead, patch
the sources to remove several of the library search directories and
override STARTFILE_PREFIX_SPEC to only look in /usr/lib. GCC still
adds tuple-specific subdirs to /usr/lib, but this is ok.
Bump PORTREVISION for both the external GCC toolchains and base/gcc.
Reviewed by: kan
Differential Revision: https://reviews.freebsd.org/D18677
- To support amd64, map amd64 to x86_64 when generating the --host argument
to configure in bsd.port.mk and when generating --target arguments in port
Makefiles.
- Add entries to the plists for i386 and amd64. amd64 generally includes both
amd64-specific entries as well as i386 entries.
- Don't include the builtin float.h for i386 and amd64.
Reviewed by: bapt
Approved by: portmgr (bapt)
Differential Revision: https://reviews.freebsd.org/D16250
For base/gcc, only enable .init_array and .fini_array for 12.0 and later
to match the policy used by clang and llvm. For the xtoolchain ports,
enable these unconditionally since the only OS version handy is the OS
version of the build host, not the target OS to be built. Unlike llvm,
the use of .init_array and .fini_array is set at compile-time for GCC
and can't be changed at runtime.
Bump PORTREVISION for base/gcc and the xtoolchain GCC ports.
Reviewed by: bapt (earlier version)
Differential Revision: https://reviews.freebsd.org/D16014
- When cross-building packages, set ARCH to the target arch instead of
the arch of the build host. This fixes bsd.ssp.mk on MIPS which was
trying to enable SSP on MIPS cross-built packages because the host
ARCH was amd64. A new HOST_ARCH variable is added to set the
--build triple for configure scripts, but I believe most other uses of
ARCH in ports are really about the target, not the build host so this
is the more correct general direction.
- Some updates to base/binutils and base/gcc to use ARCH as the target
architecture.
- Drop the extra arguments to GCC to set include and library paths and
only set --sysroot.
- Move the --sysroot flags into CC, CXX, CPP (which is now set to XCPP)
and LD instead of passing it in CFLAGS, etc. The base/gcc build uses
ends up using the CFLAGS when building native binaries for the build
host which fails when tripping over the --sysroot. I think this might
have accidentally worked before because the powerpc64 headers in
/usr/include/machine were "close enough" to the amd64 headers, but with
32-bit MIPS this failed hard.
- Add the GCC MIPS patch from devel/powerpc64-gcc to base/gcc to add
MIPS support to base/gcc.
- Add a MIPS plist for base/binutils.
- Set helper variables for the base/gcc plist to tag architecture-specific
headers (e.g. for intrinsincs) and use these to tag powerpc and MIPS
specific headers.
- Drop the include-fixed headers from base/gcc.
- Strip /usr/local/include from the default list of include paths for
base/gcc.
- Use libc++'s include path for C++ for base/gcc.
Reviewed by: bapt
Approved by: portmgr (bapt)
Differential Revision: https://reviews.freebsd.org/D15267
This is a follow up to r461057 and fixes base/binutils and base/gcc in my
testing.
PR: 224217
Submitted by: nwhitehorn (partially, I made additional changes)
Reviewed by: bapt
locale set by the user. Add LANG=C and LC_ALL=C at the beginning of
bsd.port.mk and export them so all commands are executed with the C locale.
LC_ALL=C overrides all other LC_* variables. LANG is used by setlocale(3)
as default value for LC_* variables, so normally it isn't used when LC_ALL
is set, but there's code out there that looks at LANG directly so it's safer
to set it as well. The only commands not captured by this are !=
assignments before any inclusion of bsd.port.*mk.
Introduce USE_LOCALE=<locale> that adds LANG=<locale> and LC_ALL=<locale> to
CONFIGURE_ENV and MAKE_ENV so upstream build systems can be executed with a
different locale (e.g. USE_LOCALE=en_US.UTF-8).
PR: 215882
Exp-run by: antoine
Approved by: portmgr (antoine)
This port is special, it is done only for being cross build and prepare a modern
compiler for base system build without a cross compiler
It contains the printf format extension needed for the kernel as only patch for
now.
It uses libc++ from base as a standard c++ library default on the libc++ headers
as c++ headers