Commit Graph

69 Commits

Author SHA1 Message Date
Ian Cooper
b933f9cf0c toolchain: remove gcc libssp and use libc variant
Removes the standalone implementation of stack smashing protection
in gcc's libssp in favour of the native implementation available
in glibc and uclibc. Musl libc already uses its native ssp, so this
patch does not affect musl-based toolchains.

Stack smashing protection configuration options are now uniform
across all supported libc variants.

This also makes kernel-level stack smashing protection available
for x86_64 and i386 builds using non-musl libc.

Signed-off-by: Ian Cooper <iancooper@hotmail.com>
2020-06-17 23:57:07 +02:00
Matthias Schiffer
359273d7f6
include/package-defaults.mk: fix default Build/Prepare with empty ./src
Copying ./src/* would fail when src exists, but is empty or only contains
hidden files.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2018-03-07 09:59:08 +01:00
Julien Dusser
241e6dd3e9 build: cleanup SSP_SUPPORT configure option
Configure variable SSP_SUPPORT is ambiguous for packages (tor, openssh,
avahi, freeswitch). It means 'toolchain supporting SSP', but for toolchain
and depends it means 'build gcc with libssp'.

Musl no longer uses libssp (1877bc9d8f), it has internal support, so
SSP_SUPPORT was disabled leading some package to not use SSP.

No information why Glibc and uClibc use libssp, but they may also provide
their own SSP support. uClibc used it own with commit 933b588e25 but it was
reverted in f3cacb9e84 without details.

Create an new configure GCC_LIBSSP and automatically enable SSP_SUPPORT
if either USE_MUSL or GCC_LIBSSP.

Signed-off-by: Julien Dusser <julien.dusser@free.fr>
2018-01-27 19:02:48 +01:00
Michael Heimpold
2cb75cd8b9 build: allow defining license information per binary package
At the moment, license information can only be specified on a
"per source package" level while other metadata fields (e.g. maintainer)
can be given for each binary package. Apply the same logic for license
fields as well. This can be used e.g. in cases where a library is
distributed under some license while related tools are distributed
under a different one.

Signed-off-by: Michael Heimpold <mhei@heimpold.de>
2017-11-25 20:02:04 +01:00
Yousong Zhou
7842ccecc0 build: reset ALTERNATIVES field in Package/Default
Otherwise ipkg packages may wrongly take on alternatives specs of
another package sharing the same package Makefile

Fixes FS#753

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
2017-05-03 17:40:46 +08:00
Daniel Engberg
edda8ecd79 include/packages-defaults.mk: Remove LARGEFILE option
Remove LARGEFILE option, support was removed back in 2011 (OpenWrt rev 25208).

Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
2017-04-26 13:39:11 +02:00
Alexandru Ardelean
7c8c3226dc build: copy contents of 'src' folder to build dirs (if present)
The normal Prepare step for a build is unpack, apply patches.
But for certain packages, patches contain whole files, which
would be nice to have separately and copied over as a last step
in the Prepare phase.

We need it for some other packages + patches, but I think
the 'hostapd' package can be used as a test for this.

As a quick note:
the reason the condition is being evaluated as
`[ ! -d ./src/ ] || $(CP) ./src/* $(HOST_BUILD_DIR)`
and not with
`[ -d ./src/ ] && $(CP) ./src/* $(HOST_BUILD_DIR)`
is that the latter would translate in a build failure if the `src`
folder is not present (the exit code would be 1).
The first one, succeeds for both cases (if `src` present or not).

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2016-10-15 11:36:51 +02:00
Hauke Mehrtens
559fb537d8 build: use CXXFLAGS if defined
Instead of using TARGET_CFLAGS and EXTRA_CFLAGS in cmake and scons
build use the TARGET_CXXFLAGS and EXTRA_CXXFLAGS like it is done for
normal make and configure. configure used TARGET_CXXFLAGS and
EXTRA_CFLAGS for the CXXFLAGS. The package-default.mk sets
"EXTRA_CXXFLAGS = $(EXTRA_CFLAGS)" so using EXTRA_CXXFLAGS flags should
be save.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2016-10-13 17:04:43 +02:00
Luke McKee
eadf5fb7f8 cmake: include/cmake.mk add CMAKE_BINARY_SUBDIR to allow out of source tree builds
Some packages need out of source tree building with cmake, for example
when building kernel modules.
See an example here:
https://sourceforge.net/p/accel-ppp/code/ci/master/tree/README

Signed-off-by: Luke McKee <hojuruku@gmail.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name> [cleanup, rework]
2016-07-29 20:27:34 +02:00
Jo-Philipp Wich
be575fdc9d include: remove now unused PACKAGE_SUBDIR variable
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-04-13 15:37:34 +02:00
Jo-Philipp Wich
0333da8943 include: group kmod ipk files into a "kernel" subdirectory
This is useful to just use the kmods from an official build while supplying
base packages from a custom feed or the other way around; for just overriding
the kmods with a local repo while using official repos for the rest.

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

SVN-Revision: 48475
2016-01-24 15:36:05 +00:00
Steven Barth
1877bc9d8f gcc/musl: rework SSP-support
Make musl provide libssp_nonshared.a and make GCC link it unconditionally
if musl is used. This should be a no-op if SSP is disabled and seems to be
the only reliable way of dealing with SSP over all packages due to the mess
that is linkerflags handling in packages.

Signed-off-by: Steven Barth <steven@midlink.org>

SVN-Revision: 46108
2015-06-22 10:31:07 +00:00
Steven Barth
565a2940ff package-defaults: remove libssp for musl (redundant)
Signed-off-by: Steven Barth <steven@midlink.org>

SVN-Revision: 46072
2015-06-20 17:37:22 +00:00
Luka Perkov
7002f6326e include: remove trailing whitespaces
Signed-off-by: Luka Perkov <luka@openwrt.org>

SVN-Revision: 45127
2015-03-29 07:29:18 +00:00
John Crispin
4f44df6fd8 package-defaults.mk: set DISABLE_NLS only if not CONFIG_BUILD_NLS
set DISABLE_NLS only if CONFIG_BUILD_NLS NOT set.
like DISABLE_IPV6 which depends on CONFIG_IPV6

Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>

SVN-Revision: 44930
2015-03-21 21:48:18 +00:00
Felix Fietkau
7dad0f6fe4 build: add optional dependency on libssp to all non-kernel packages
When enabling SSP_SUPPORT, a lot of packages fail during compile phase
with the following error:

Package X is missing dependencies for the following libraries:
libssp.so.0

This can be solved by adding an optional dependency on libssp to all
those packages, but as there are quite a few packages both in OpenWrt
core and in the package repository, it might make sense to add this
optional dependency to all non-kernel packages, instead of polluting
lots of package dependency lines with it.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>

SVN-Revision: 44911
2015-03-20 16:50:50 +00:00
John Crispin
3e2f578353 toolchain: The glorious return of glibc, ver 2.21
It's the eglibc packaging with a bit of spit-polishing. And testing. :-)

[blogic: merged glibc and eglibc into 1 and made eglibc a glibc variant]

Signed-off-by: Jeff Waugh <jdub@bethesignal.org>
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 44701
2015-03-12 19:50:57 +00:00
Felix Fietkau
5e4789671a build: add support for declaring package CONFLICTS which only affect selecting built-in packages
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 42770
2014-10-05 16:41:33 +00:00
Felix Fietkau
a62f0d02ec build: allow packages with build variants to explicitly select a default variant
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 42654
2014-09-23 10:41:15 +00:00
John Crispin
b44a2d3f7e include: remove file before overwritting it with replace_script
config.{sub,guess} could be symlinks to a shared common version of
this file (e.g. in staging). So we remove the destination file via
--remove-destination option of cp. This prevents replaceing the
common file that other packages could be build with if running at
the same time.

This fixes a class of errors where config.sub is missing, or
only partially present when running configure because a cp is
currently in progress

This is commonly seen building with a lot of parallel jobs and
on packages that use 'PKG_FIXUP:=autoreconf'

Signed-off-by: Matthew McClintock <mmcclint@qca.qualcomm.com>
Signed-off-by: Mathieu Olivari <mathieu@qca.qualcomm.com>

SVN-Revision: 42547
2014-09-15 10:18:56 +00:00
John Crispin
285012d897 include: add a meta data field for required system user:group
this is in preparation of having services run as !root with
ACL'ed access to ubus.

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 42469
2014-09-11 12:27:26 +00:00
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
2014-03-21 15:54:07 +00:00
Felix Fietkau
623825103e build: allow packages to declare ABI versions to detect necessary package rebuilds
If a package directly depends on another package that recently changed
its ABI version, it will be cleaned up and rebuilt (assuming quilt is
not used).

This helps with packages that have no stable ABI, e.g. libubox, ubus,
etc.

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

SVN-Revision: 39720
2014-02-23 17:32:04 +00:00
Felix Fietkau
de707ac97e build: reduce the size of package metadata a bit to keep package list files smaller
SVN-Revision: 34871
2012-12-22 19:56:21 +00:00
Felix Fietkau
dc0faf077c build: remove the default useless MAINTAINER value
SVN-Revision: 34868
2012-12-22 18:56:16 +00:00
Felix Fietkau
2d7eaf2e15 build: allow the package maintainer info to be specified globally for a source package
SVN-Revision: 33659
2012-10-08 11:40:57 +00:00
Felix Fietkau
ed2bf29be5 build: add the + token to any commands that can pass through the jobserver, fixes parallel build on some systems
SVN-Revision: 33523
2012-09-23 09:50:01 +00:00
Jo-Philipp Wich
b06f4dc972 make packages depend on +librt and +libpthread by default if eglibc is in use
SVN-Revision: 33480
2012-09-19 15:30:40 +00:00
Felix Fietkau
edee850e18 build: add a dependency on libc to all non-kernel packages
SVN-Revision: 32171
2012-06-10 20:27:37 +00:00
Felix Fietkau
74946bb022 build: remove redundant call to $(SH_FUNC) (#8042)
SVN-Revision: 30818
2012-03-05 11:57:08 +00:00
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
2012-03-01 10:39:46 +00:00
Felix Fietkau
bcf4757508 add support for hidden packages that get selected/built but do not show up in menuconfig
SVN-Revision: 27344
2011-07-02 06:49:09 +00:00
Felix Fietkau
459762ace2 add a new package metadata variable MDEPENDS for specifying local menuconfig dependencies that do not propagate to other packages
SVN-Revision: 26491
2011-04-05 19:03:51 +00:00
Jo-Philipp Wich
8b9ca16985 add support for flagging packages
SVN-Revision: 23172
2010-10-02 03:21:33 +00:00
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
2010-09-12 20:49:54 +00:00
Felix Fietkau
a9136c0892 speed up the build system by including include/shell.sh on shell commands only where necessary
SVN-Revision: 22720
2010-08-19 12:49:37 +00:00
Michael Büsch
7ed7784f59 Support parallel build of certain packages
SVN-Revision: 22696
2010-08-18 13:57:58 +00:00
Travis Kemen
e09067b221 The attached patch replaces $(1) install by $(if $(1), $(1), install) in the definition, in order to be able to specify an install rule, which is not always called install (example: trunk/package/ncurses/Makefile has rules called install.libs and install.data).
Then its possible to do this in ncurses Makefile:

define Build/Install
       $(call Build/Install/Default, install.libs install.data)
endef

This patch does not affect anything else, as if no parameter is given,
it will use install as before.

-Raphael

SVN-Revision: 19996
2010-03-05 20:19:48 +00:00
Felix Fietkau
579d54038b build system: introduce a new feature called build variants. it allows building a package multiple times in one pass with different build dirs, based on the same build settings. replaces templating hacks like the one used in the hostapd package
SVN-Revision: 18357
2009-11-10 22:00:54 +00:00
Imre Kaloz
671280830d add special handling for the adm5120 target, which uses subtargets for different endianess -- later we should come up with something smarter
SVN-Revision: 17101
2009-08-03 11:24:56 +00:00
Florian Fainelli
e5221c1405 revert 17050 this was not the right way to fix this
SVN-Revision: 17075
2009-08-01 12:10:22 +00:00
Imre Kaloz
9711e6ad55 use board names instead of arch in packages
SVN-Revision: 17063
2009-07-31 12:15:51 +00:00
Florian Fainelli
04fc02ba10 move the global ipv6 option to the very bottom of the options passed to configure scripts, so that we can still override it in package makefiles (#5592, #5586)
SVN-Revision: 17050
2009-07-30 13:05:51 +00:00
Florian Fainelli
11e1304ca0 globally define IPv6 support or not in OpenWrt, just like for largefiles, ipv6 disabled by default (#4857)
SVN-Revision: 16983
2009-07-25 21:45:51 +00:00
Florian Fainelli
d413a9639e Fix configure script path when not at the root of $(PKG_BUILD_DIR), thanks Daniel Dickinson (#5255)
SVN-Revision: 16656
2009-07-02 13:08:08 +00:00
Ralph Hempel
6f29703625 add dist and distcheck target (to create new source balls)
SVN-Revision: 16230
2009-05-31 12:01:05 +00:00
Nicolas Thill
c73f8dfbe0 remove 2 old interfering variables, probably missed from [15299]
SVN-Revision: 15340
2009-04-22 22:08:42 +00:00
Felix Fietkau
729e0fa4d1 move pkg config stuff to per-target exports to prevent interference with host builds
SVN-Revision: 15299
2009-04-20 18:56:57 +00:00
Felix Fietkau
431c9267b4 replace a few unnecessary $(shell) calls
SVN-Revision: 14739
2009-03-03 14:55:53 +00:00
Felix Fietkau
f0bc868861 initialize the url field for packages
SVN-Revision: 14643
2009-02-23 18:51:12 +00:00