Commit Graph

235 Commits (1634461bd208f4bd108ea5c3d3f1cf9eb56d4a7e)

Author SHA1 Message Date
Steven Barth 2738526a16 toolchain: add fortify-headers, enable FORTIFY_SOURCE by default
Signed-off-by: Steven Barth <steven@midlink.org>

SVN-Revision: 46117
9 years ago
Felix Fietkau a778060392 toolchain: switch to musl by default, except for mips64
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 45995
9 years ago
Felix Fietkau beca028bd6 build: add integration for managing opkg package feed keys
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 45286
9 years ago
John Crispin 6c434d5f06 rules.mk: add newline definition
To be used for stuff like $(subst $(space),$(newline),$(SOME_VAR))

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>

SVN-Revision: 44796
9 years ago
Jo-Philipp Wich 24f49b170e rules.mk: don't add staging_dir/host/bin/ path again
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 44379
9 years ago
Jo-Philipp Wich 2efe776ab0 scripts: extend rstrip.sh to remove bad rpaths
Remove all rpath entries which do not point to a location below /lib or
/usr/lib and which do not begin with '$ORIGIN'.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 44377
9 years ago
Jo-Philipp Wich 1162d6b721 rules.mk: use relative paths for BASH, TAR, FIND, PATCH, PYTHON
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 44294
9 years ago
Jo-Philipp Wich 78f476ed02 include: declare variables formerly set in tmp/.host.mk
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 44272
9 years ago
Felix Fietkau 60629e1695 build: do not assume that gcc-{ar,ranlib,nm} is usable with an external toolchain
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 43911
9 years ago
Felix Fietkau 9a46799804 build: use gcc-provided ar, nm and ranlib where appropriate
Since GCC 4.7, GCC provides its own wrappers around ar, nm and ranlib, which
should be used for builds with link-time optimization. Since GCC 4.9, using them
actually necessary for LTO builds using convenience libraries to succeed.

There are some packages which try to automatically detect if gcc-{ar,nm,ranlib}
exist (one example is my package "fastd" in the package repository, which tries
to use LTO). This breaks because the OpenWrt build system explicitly sets the
binutils versions of these tools.

As it doesn't cause any issues to use gcc-{ar,nm,ranlib} instead of
{ar,nm,ranlib} even without LTO, this patch just makes OpenWrt use the
GCC-provided versions by default, which fixes the build of such packages with
GCC 4.9.

(I know that builds fail though when clang is used with -flto and
gcc-{ar,nm,ranlib}, but as all OpenWrt toolchains are based on GCC, this isn't
a real issue.)

Completely cleaning the tree (or at least `make clean toolchain/clean`) is
necessary to get a consistent state after the binutils plugins support patch and
this one (as trying to use gcc-{ar,nm,ranlib} with a binutils built without
plugin support will definitely lead to a build failure).

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>

SVN-Revision: 43784
9 years ago
Felix Fietkau 20a3814a9c rules.mk: reduce shexport to one line to allow it to be put in a target context
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 43018
10 years ago
Felix Fietkau d081edf7eb build: clean up and optimize ipkg control generator code
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 43017
10 years ago
John Crispin 7557afa9a5 build: add $(STAGING_DIR_HOST)/usr/{include, lib} to build search path.
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>

SVN-Revision: 42987
10 years ago
Felix Fietkau c541b31e40 build: override hardcoded paths to bison and m4 to make the SDK more relocatable
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 42300
10 years ago
Felix Fietkau 627e974c99 partially revert "build: remove check for nonexistant CONFIG_TAR_VERBOSITY variable and move TAR_OPTIONS to unpack.mk"
This complicates the evaluation order for some packages

SVN-Revision: 40006
10 years ago
Felix Fietkau e71ec4cb55 build: remove GREP_OPTIONS export from rules.mk, defining it in the top-level Makefile is enough
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 39982
10 years ago
Felix Fietkau 51ae801ee3 build: remove check to nonexistant CONFIG_ENABLE_LOCALE variable and move DISABLE_NLS to package-defaults.mk
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 39980
10 years ago
Felix Fietkau 00bcebeb4c build: remove check for nonexistant CONFIG_TAR_VERBOSITY variable and move TAR_OPTIONS to unpack.mk
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 39979
10 years ago
Felix Fietkau 318052e03c build: add a variable for the name of the {build,staging}_dir/{target,toolchain}-* directories
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 39857
10 years ago
Imre Kaloz f6b57149af FPU type should not interfere with the ABI selection. Also make sure we either do real soft-float or hard-float on ARM, with the right options.
Signed-off-by: Imre Kaloz <kaloz@openwrt.org>

SVN-Revision: 38943
11 years ago
Imre Kaloz f0721fa502 allow configuration of the target directory for binaries
Signed-off-by: Imre Kaloz <kaloz@openwrt.org>

SVN-Revision: 38890
11 years ago
Felix Fietkau e0189ccef4 build: include the cpu type as part of the toolchain/target directory name
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 38214
11 years ago
Felix Fietkau a1a5f59ea3 build: decouple the mips16 support flag from the toolchain
Add the flags from package.mk instead, and leave libc and gcc
unaffected.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 37770
11 years ago
Felix Fietkau 73c4d73d6d build: unify target independent optimization options
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 37600
11 years ago
Felix Fietkau 5d1c80f002 build: add required exports for dependency tracking
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 37387
11 years ago
Felix Fietkau 1c742fb388 build: move the XARGS variable out of the host checks, since a working xargs is built in tools/
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 37228
11 years ago
Felix Fietkau e3a28f415b rules.mk: use qstrip to reduce syntax highlighting issues
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 37225
11 years ago
Felix Fietkau 2430e9a4f5 toolchain: eliminate the INSTALL_LIBSTDCPP config symbol and make c++ support mandatory - fixes recursive config symbol dependency issues
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 36594
11 years ago
John Crispin c2c1f9ae73 rules.mk: add _dsp to ARCH_SUFFIX if the dsp ase is used
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 36566
11 years ago
Florian Fainelli e032922266 toolchain: allow choosing the MIPS64 user-land ABI
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 36205
11 years ago
Florian Fainelli 348cae15d2 buildroot: factor knowledge of a 64bits architecture
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 36204
11 years ago
Florian Fainelli 9e1d2c15d9 buildroot: allow enabling MIPS16 user-space build
Enabling MIPS16 is made conditional on advertising the "mips16" feature
for a specific target since it requires support from the CPU
(HAS_MIPS16) and the actual use of MIPS16 for building packages
(USE_MIPS16).

Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 36202
11 years ago
Florian Fainelli be5d8e6c87 rules.mk: MIPS16 builds get a different toolchain
To be safe, build "m16" into the toolchain and target architecture the
same way mips32r2 does:

target-mips_r2_m16_uClibc-0.9.33.2
toolchain-mips_r2_m16_gcc-4.6-linaro_uClibc-0.9.33.2

Signed-off-by: Jay Carlson <nop@nop.com>
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 36198
11 years ago
Florian Fainelli 5b3445c60b rules.mk: Create TARGET_ASFLAGS; force -mno-mips16
Create and use a TARGET_ASFLAGS, defaulting to TARGET_CFLAGS.

MIPS .S files reasonably assume they are not in mips16 mode. Because
"-mips16 -mno-mips16" results in -mno-mips16, I can append that to the
TARGET_ASFLAGS. This should be done with $(filter-out)?

Signed-off-by: Jay Carlson <nop@nop.com>
Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 36197
11 years ago
Felix Fietkau 3d6093c275 build: add a HOSTCXX variable pointing at the c++ compiler
SVN-Revision: 36109
11 years ago
Gabor Juhos 2d9e89b24c fix ARCH_SUFFIX for mips64{,el}r2
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

SVN-Revision: 35688
11 years ago
Jo-Philipp Wich 236c369a89 rules.mk: only select latest libgcc.a with wildcard match (#12798)
SVN-Revision: 35144
11 years ago
Jo-Philipp Wich 993ac4600a rules.mk: don't use $(realpath) in file_copy, the destination directory might not exist yet - spotted while doing a fresh build
SVN-Revision: 34447
12 years ago
Jo-Philipp Wich 828597693e rules.mk: provide a macro "file_copy" which removes any symlink in the destination dir that would be overwritten
SVN-Revision: 34437
12 years ago
Jo-Philipp Wich 2371c6542e rules.mk: fix misspelled config symbol introduced by r34300
SVN-Revision: 34304
12 years ago
Jo-Philipp Wich a21fbec006 rules.mk: append libc implementation to bin directory name if not using uClibc
SVN-Revision: 34300
12 years ago
Felix Fietkau 44cd20b802 build: rework the package/install step - collect package install lists during package/compile, then install all packages at once
SVN-Revision: 33631
12 years ago
Felix Fietkau 28665d55cd rules.mk: add TARGET_AR and TARGET_RANLIB
SVN-Revision: 33508
12 years ago
Jo-Philipp Wich 8726a422cd do not pass optimization flags in HOST_CPPFLAGS (#12153)
SVN-Revision: 33351
12 years ago
John Crispin 1c53dda443 remove duplicate HOSTCC_NOCACHE
SVN-Revision: 33088
12 years ago
Florian Fainelli fb9023bb8a move LIB_SUFFIX from base-files to rules.mk
Some packages are going to need fixups based on LIB_SUFFIX

SVN-Revision: 33080
12 years ago
John Crispin 370894e594 fix up scons vs ccache
SVN-Revision: 32902
12 years ago
John Crispin f6ef96fab2 add and export HOSTCC_NOCACHE
SVN-Revision: 32466
12 years ago
Felix Fietkau 4d8cd3afc0 make librpc compatible with eglibc, unconditionally enable it for packages that need rpc support
SVN-Revision: 32129
12 years ago
John Crispin a53b084e49 add ccache wrapper
SVN-Revision: 32075
12 years ago
John Crispin cc5b3e683e Use build suffix on build_dir paths
Adds BUILD_SUFFIX to STAGING_DIR

Signed-off-by: Tathagata Das <tathagata@alumnux.com>

SVN-Revision: 31233
12 years ago
Felix Fietkau 236dd9d9a2 kernel: keep more symbols in the kernel modules when doing profiling
SVN-Revision: 30762
12 years ago
Felix Fietkau edc3ad9100 build: add TARGET_CXXFLAGS and EXTRA_CXXFLAGS, defaulting to *_CFLAGS via lazy evaluation. this allows adding c++ specific cflags
SVN-Revision: 30760
12 years ago
Felix Fietkau a8ec8ce1ac kernel: do not rename module symbols with kallsyms enabled
SVN-Revision: 30759
12 years ago
Felix Fietkau c2590fe930 strip kernel modules more aggressively: make all global symbols local, rename all symbols in the symbol table to make them compress better
SVN-Revision: 30662
12 years ago
Felix Fietkau 27bb12af0f build: add -Wno-error=unused-but-set-variable to cflags for gcc 4.6 and newer to avoid stupid -Werror related package breakage
SVN-Revision: 30556
12 years ago
Jo-Philipp Wich 1504738c02 rules.mk: filter "." and "./" entries from $PATH, prevents toolchain build issues and likely other problems
SVN-Revision: 29951
12 years ago
Jo-Philipp Wich 5b7668ca44 use ext-toolchain.sh to integrate external toolchains Use ext-toolchain.sh to wrap external toolchain commands, abort build if certain features such as CONFIG_SOFT_FLOAT or CONFIG_IPV6 are enabled but not supported by the toolchain.
SVN-Revision: 29766
12 years ago
John Crispin ccb6b0a063 tools: clean up Makefiles / make ccache work
SVN-Revision: 29754
12 years ago
Jo-Philipp Wich cbe164a295 rules.mk: provide a LIBGCC_A variable
SVN-Revision: 28175
13 years ago
Felix Fietkau 5820306407 only export GCC_HONOUR_COPTS for the built-in toolchain, fixes missing-fhonour-copts warnings with external toolchains
SVN-Revision: 27771
13 years ago
John Crispin 4551f2bfcc add menuconfig option to enable log files during build process
SVN-Revision: 27403
13 years ago
Jo-Philipp Wich a66b496001 rules.mk: properly populate $(LIBGCC_S) for external toolchains
SVN-Revision: 26593
13 years ago
Felix Fietkau 21ff098352 set TOOLCHAIN_DIR var when using external toolchain
This patch allows to use the openwrt toolchain as external toolchain for the
same project. See bug #9131 for details.

Signed-off-by: Sven Bachmann <dev@mcbachmann.de>

SVN-Revision: 26405
13 years ago
Felix Fietkau 6c7170b923 Revert "kernel: remove all local symbols from kernel modules at link time to reduce their size" Use -x when stripping kernel modules instead
SVN-Revision: 26305
13 years ago
Felix Fietkau 596d89b331 strip .gnu.attributes and .reginfo from kernel modules
SVN-Revision: 26304
13 years ago
Felix Fietkau 791641db07 strip .note.gnu.build-id from kernel modules
SVN-Revision: 26217
13 years ago
Felix Fietkau 73c1dd9473 build: move the CCACHE_DIR to the build targets so that it doesn't interfere with a host ccache setup
SVN-Revision: 26181
13 years ago
Imre Kaloz b74308c433 only support EABI on ARM targets
SVN-Revision: 25928
13 years ago
Jo-Philipp Wich 260652bf8f add an abstract $(LIBRPC_DEPENDS) variable for feed packages to rely on
SVN-Revision: 25841
13 years ago
Imre Kaloz a3989e3dbd We use different toolchain directories for different ARM archs, so we should set the default arch of gcc to reflect this.
This enables EABI support for armv4 CPUs.

Signed-off-by: Jochen Friedrich <jochen@scram.de>

SVN-Revision: 25705
13 years ago
Felix Fietkau 85c44cafab add a variable LIBRPC to refer to the external librpc if used
SVN-Revision: 25497
13 years ago
Jo-Philipp Wich 3052dfbb85 remove support for disabling large file support, it is broken, breaks compatibility to anything and has no effect on most packages
SVN-Revision: 25208
13 years ago
Felix Fietkau 8740549c57 mpc85xx: add a new 'spe_fpu' feature flag for the FPU used on freescale powerpc cpus The SPE FPU is ABI-incompatible with the regular powerpc FPU, this needs to be reflected in the toolchain target name. Fixes floating point crashes in user space
SVN-Revision: 25018
13 years ago
Jo-Philipp Wich dbf8d9c516 - implement hooks for hostbuilds - use host build hooks to implement fixups for host build - move separator declaration to rules.mk
SVN-Revision: 24551
14 years ago
Felix Fietkau 97b3d9688c remove an obsolete comment for the flock template
SVN-Revision: 23744
14 years ago
Felix Fietkau b34a0b3282 fix usage of flock - use the command mode instead of locking a file descriptor to fix build issues on mac os x
SVN-Revision: 23743
14 years ago
Michael Büsch e396e33ad2 Add macro for locking of recipe commands.
SVN-Revision: 23708
14 years ago
Michael Büsch a46c332411 Add HOST_FPIC. It currently always is -fPIC, because that should work on all platforms, even if it may generate slightly inefficient code on some arches.
SVN-Revision: 23598
14 years ago
Jo-Philipp Wich 10f5101af3 Add two debug rules the examine the values of runtime make variables. Based on patch by Philip Prindeville <philipp@redfish-solutions.com>
SVN-Revision: 23389
14 years ago
Jo-Philipp Wich d3f412f4ec rename PATCH to KPATCH
SVN-Revision: 23286
14 years ago
Jo-Philipp Wich 19421b6732 drop the usr/ prefix when scanning for libgcc.a
SVN-Revision: 23042
14 years ago
Jo-Philipp Wich 064e7c8f00 Implement an ARCH_PACKAGES variable which defaults to BOARD but can be overridden on a per-subtarget basis. This is intended for targets such as adm5120 and malta which support both big and little endianess and will replace the target specific exceptions in package-defaults and Image Builder.
SVN-Revision: 23029
14 years ago
Florian Fainelli 3992d44428 ccache TARGET_CXX
Signed-off-by: Alam Arias <Alam.GBC@gmail.com>

SVN-Revision: 23008
14 years ago
Felix Fietkau b3c871375b fix compile errors by forcing bash to be used as a shell in all submake processes
SVN-Revision: 22726
14 years ago
Felix Fietkau 62c1740676 toolchain: fix the sysroot mess by getting rid of $(TOOLCHAIN_DIR)/usr and moving it back to $(TOOLCHAIN_DIR), this change makes the toolchain relocatable again, which should fix the SDK
SVN-Revision: 22723
14 years ago
Felix Fietkau a9136c0892 speed up the build system by including include/shell.sh on shell commands only where necessary
SVN-Revision: 22720
14 years ago
Florian Fainelli 7fc192e9a5 fix for GREP_OPTIONS
When using GREP_OPTIONS to supply default options to grep, the buildsystem might get broken (For example adding --color=always breaks it)
This patch will empty the GREP_OPTIONS to prevent the described (and any other) problems related to GREP_OPTIONS

Signed-off-by: Maarten Bezemer <m.m.bezemer@utwente.nl>

SVN-Revision: 22443
14 years ago
Nicolas Thill 18035964c7 fix path to libgcc.a in LIBGCC_S
SVN-Revision: 20593
14 years ago
Felix Fietkau dd046f4759 use lazy evaluation for TARGET_CONFIGURE_OPTS to make it possible to override TARGET_CC and TARGET_CXX
SVN-Revision: 20566
14 years ago
Felix Fietkau 80d6e3b245 add an arch suffix for handling different variants of arm/mips for the toolchain/target directories
SVN-Revision: 20215
14 years ago
Travis Kemen 137c26b7cb there are quite a lot of package using ln -sf in their Makefile, so this patch adds
LN:=ln -sf

to rules.mk

-Raphael

SVN-Revision: 19998
14 years ago
Nicolas Thill 9899fbb148 use distinct build/staging dirs for EABI/OABI builds
SVN-Revision: 19885
14 years ago
Nicolas Thill c0f8b43b17 use a DIR_SUFFIX variable to hold libc/version and use it in build/staging dir names
SVN-Revision: 19884
14 years ago
Felix Fietkau 15fecc9e6c remove support for DEBUG_DIR, it has lost its purpose since STAGING_DIR_ROOT was added
SVN-Revision: 19849
14 years ago
Lars-Peter Clausen 001736d848 Add include_mk template which makes it a bit more convienient to include package installed mk files.
SVN-Revision: 19847
14 years ago
Nicolas Thill 0f3c406bdb add a config item to specify arguments to strip
SVN-Revision: 19270
14 years ago
Felix Fietkau 6c57203836 oops, forgot one small change in the last commit
SVN-Revision: 18640
15 years ago
Felix Fietkau b647c168de remove the redundant subdirectory from the packages directory variable
SVN-Revision: 18639
15 years ago
Florian Fainelli ee8018ef11 output firmware files in bin/$(BOARD) instead of bin/
SVN-Revision: 18624
15 years ago