summaryrefslogtreecommitdiffstats
path: root/Makefile.libcompat
Commit message (Collapse)AuthorAgeFilesLines
* MFC r316586:bdrewery2017-04-281-1/+1
| | | | META_MODE: Fix build-tools still sometimes rebuilding during target build.
* MFC r303274:bdrewery2016-07-271-2/+2
| | | | | | Don't disable binutils/elftoolchain bootstrapping with external compiler. Approved by: re (kib)
* WITH_SYSTEM_COMPILER: Avoid using GCC4.8+ logic on native GCC4.2 platforms.bdrewery2016-06-291-2/+2
| | | | | | | | | | | As the XXX notes, these should really be checking MK_GNUCXX since there is already a version check in share/mk/src.opts.mk to disable it. Fixing that here is more complex though. This could also be using X_COMPILER_FEATURES but uses X_COMPILER_VERSION to keep in sync with the src.opts.mk logic. Tested by: andreast Sponsored by: EMC / Isilon Storage Division Approved by: re (gjb)
* Fix native powerpc64 build of lib32 with in-tree GCC.bdrewery2016-06-151-1/+9
| | | | | | | | | | | | | | | | | | | | | | | - This was broken by r300350 and r300885. - Add some comments around the external GCC logic since it is spread out and in need of some cleanup. - The problem was that X_COMPILER_TYPE is always defined from CC->XCC's default, so if /usr/bin/cc is GCC (as it is on native powerpc64) then X_COMPILER_TYPE was getting GCC and triggering the external logic in Makefile.libcompat. It was intended to always provide -isystem with GCC since --sysroot is used into the lib32 sysroot which won't modify the header path without the -isystem. The use of the libc++/std=c++11 override was only intended to be used for external compilers though (more accurately GCC 4.8+ but that's a separate assumption to cleanup). Apply the same logic from Makefile.inc1 to Makefile.libcompat to only add the libc++ override when needed for external compilers. Pointyhat to: bdrewery Tested with: native ppc64 (swills), universe, ppc64 xtoolchain, amd64 xtoolchain, sparc64 cross-build of ppc64 (host GCC 4.2) Reported by: andreast, swills Approved by: re (gjb) Sponsored by: EMC / Isilon Storage Division
* Use -L to specify compat32 library paths instead of -Yemaste2016-06-091-1/+1
| | | | | | | | | | | | | -Y is an uncommon linker option that is rather similar to -L. In discussion with Peter it seems early amd64 development might have required the -Y-specific behaviour, but it is no longer necessary. Switch to -L which is more widely supported and much more commonly used, to make it easier to link the FreeBSD base system with linkers other than ld.bfd. Submitted by: Rafael Ávila de Espíndola Differential Revision: https://reviews.freebsd.org/D6681
* Libcompat: Swap CXX/CFLAGS.bdrewery2016-05-291-1/+1
| | | | | | This is the same as done for the native build in r300770 to ensure that the libc++ build reads from SYSROOT/usr/include/c++/v1 before reading from SYSROOT/usr/include.
* GCC External: Revert r300886, r300904, r300917, r300918bdrewery2016-05-291-6/+11
| | | | | The fix in r300873 is mostly enough. A fix for lib32 will be committed.separately.
* Libcompat: Set build tools in environment rather than make overrides.bdrewery2016-05-291-4/+6
| | | | | | | | | This allows the CXX hack in r300917 for external GCC to work for the lib32 build. It is also the same pattern as the native build uses by adding the tools into CROSSENV for external toolchain, rather than make overrides. Sponsored by: EMC / Isilon Storage Division
* Move external GCC compiler hacks to bsd.sys.mk.bdrewery2016-05-271-7/+0
| | | | | | | | | | | | | | This allows respecting -nostdinc, -nostdinc++ and -nostdlib before making the decision to add in -isystem, etc. The -isystem flags are problematic for building lib/libc++ and lib/libcxxrt which wants to only use its own headers. More information the need of these flags can be found at https://gcc.gnu.org/ml/gcc/2016-03/msg00219.html This also reverts r300873. Sponsored by: EMC / Isilon Storage Division
* Libcompat: Only pass -isystem =/usr/include for external GCC.bdrewery2016-05-271-2/+1
| | | | | | | | | This is the same as the main build logic. GCC with a cross-compiler requires using -isystem to =/usr/include to get the search order correct. Reported by: dim, asomers Sponsored by: EMC / Isilon Storage Division
* Set CPP from XCPP for the libcompat build.bdrewery2016-04-151-0/+1
| | | | Submitted by: Mark Millard <markmi@dsl-only.net>
* META_MODE: Don't rebuild build-tools targets during normal build.bdrewery2016-04-141-0/+4
| | | | | | | | | This avoids 'build command changed' due to CFLAGS/CC changes during the normal build. Without this the build-tools targets end up rebuilding for the *target* rather than keeping the native versions built in build-tools. Sponsored by: EMC / Isilon Storage Division
* Remove leftover _LDSCRIPTROOT missed in r297270.bdrewery2016-04-051-1/+1
| | | | Sponsored by: EMC / Isilon Storage Division
* LIB32+WITHOUT_TOOLCHAIN: Fix build by staging includes.bdrewery2016-03-311-1/+2
| | | | | | This is the same fix as r297281 for the normal build. Sponsored by: EMC / Isilon Storage Division
* Remove the old depend (mkdep) code and make FAST_DEPEND the one true way.bdrewery2016-03-301-1/+1
| | | | | | | Reviewed by: emaste, hselasky (partial), brooks (brief) Discussed on: arch@ Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D5742
* Fix libcompat not handling some external toolchain flags.bdrewery2016-03-251-3/+11
| | | | | | | - Use libc++ with GCC. - Use CROSS_BINUTILS_PREFIX with -B (r280980 addressed this mostly already) Sponsored by: EMC / Isilon Storage Division
* Build libcompat (lib32) with a --sysroot pointing into its stage directory.bdrewery2016-03-251-9/+13
| | | | | | | | | | | | | | | | | | | | | | | | This overrides the cross-compiler's default sysroot to use the WORLD32's sysroot for building the lib32 libraries. Previously the cross-compiler would default the sysroot to the 64bit WORLDTMP and -B/-L/-isystem flags were used to build using the lib32 files. This leads to multiple issues discussed later. Some extra headers are now needed to be staged since the 64bit WORLDTMP is not referenced at all for headers. The 64bit WORLDTMP is still used via PATH for build tools. Overriding the default target/arch is retained in the CC/CXX overrides. This allows reverting the LDSCRIPT rewriting in installworld from r296921 and r235122, thus allowing read-only objdirs to work for installing again. This removes the need for _LDSCRIPTROOT. This allows progressing the change to always use --sysroot for the build rather than only relying on the cross-compiler's default sysroot. The work for that is in D3970 and needed to resolve WITHOUT_CROSS_COMPILER not using a --sysroot [1]. PR: 196193 [1] Sponsored by: EMC / Isilon Storage Division
* LIBRARIES_ONLY should only be defined during install32.bdrewery2016-03-251-2/+2
| | | | | | | | | | r245561 added it to prevent extra files from being installed during the install32 phase (to prevent duplicates in the meta log with -DNO_ROOT). The flag should not be passed during build32 though since it may prevent staging of includes during the 'make includes' phase on library directories. Sponsored by: EMC / Isilon Storage Division
* Explicit 'make obj' for library dirs in build32 is not needed.bdrewery2016-03-241-3/+0
| | | | | | | | In r138291 some directories were explicitly made to run 'make obj', but each target in 'make libraries' already runs 'make obj' for each library since r161580. Sponsored by: EMC / Isilon Storage Division
* Use the newly minted Makefile.libcompat to implement libsoft librariesimp2016-03-121-1/+10
| | | | | | | | for the armv6 ABI switch. This also make WITH_LIBSOFT functional on the arm platform. As a transition thing, this seems to work even without switching the ABI (we basically build the same libraries twice when MK_LIBSOFT=yes until the ABI cut over next month). MK_LIBSOFT remains default no.
* Follow-up r296709: Fix build32 not properly building all libraries.bdrewery2016-03-121-3/+3
| | | | | Pointyhat to: bdrewery Reported by: antoine
* Move Makefile.lib32 to Makefile.libcompat and generalize it.bdrewery2016-03-111-0/+152
This is in preparation for LIBSOFT. This file only supports *1* LIBCOMPAT value currently and must be capitalized. In Makefile.libcompat given LIBCOMPAT=FOO there can be values set for LIBFOOCFLAGS, LIBFOOCPUFLAGS, LIBFOOWMAKEENV, LIBFOOWMAKEFLAGS, LIBFOOCPUFLAGS, and LIBFOODTRACE. These will have the standard cross-build values appended onto them. This could be extended to support multiple libcompat libraries in the future once there is a need. Reviewed by: imp Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D5612
OpenPOWER on IntegriCloud