Not all targets need regulator support, so they dont enable it as its
disabled in the generic config by default.
So, in order to allow kernel modules to depend on regulator support lets
add a new feature flag "regulator" and set it automatically if target
kernel config enables CONFIG_REGULATOR.
Link: https://github.com/openwrt/openwrt/pull/22172
Signed-off-by: Robert Marko <robimarko@gmail.com>
DESCRIPTION field has been deprecated since 2007, yet internal exporting
causes intermittent package build failures due to the deprecation check,
even with packages that don't have that fields set. Replace all
DESCRIPTION exports with alternative variables defined through shexport
and shvar helpers and remove the check.
Fixes: 547b127d ("make kernel module packaging code reusable and use it in madwifi")
Fixes: 7558f028 ("DESCRIPTION:= is obselete, so complain if it is used and use TITLE if no description is set")
Fixes: cc435322 ("build: optimize target metadata dump")
Fixes: d081edf7 ("build: clean up and optimize ipkg control generator code")
Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21668
Signed-off-by: Robert Marko <robimarko@gmail.com>
Do not always try to include iwinfo in the images when wpa supplicant or
Broadcom nas is also included. iwinfo is incompatible with current
default configuration.
iwinfo is only build when CONFIG_WIFI_SCRIPTS_UCODE is not set. If
CONFIG_WIFI_SCRIPTS_UCODE is not set kmod-cfg80211 depends on iwinfo,
so it should be included in all images with wifi drivers.
The CONFIG_WIFI_SCRIPTS_UCODE option was recently changed to be active
by default.
This should fix the current buildbot build failures.
This reverts commit 6435b8bb27 ("build: include iwinfo by default
if nas or wpad(-mini) is selected")
Fixes: 04e9929c47 ("wifi-scripts: enable ucode scripts by default")
Link: https://github.com/openwrt/openwrt/pull/20211
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Not all targets support power management, some older or more simple
targets don't have CONFIG_PM set. Allow kernel module packages to
depend on USES_PM to only be available on targets which got
CONFIG_PM=y in their kernel config.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Not all targets have CONFIG_PINCTRL=y set in their kernel config.
Let's introduce a feature for that so kernel module packages which
select or depend on CONFIG_PINCTRL=y may depend on that, so we can
try to prevent leaking CONFIG_PINCTRL=y also into targets which do
not require it.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Move kernel-version.mk include to proper place to properly set patch folders for test kernel.
Fixes: 8865dadea7
Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
To further improve cleanup and maintenance usage, move the kernel
version files to target/linux/generic directory. This permits to self
contain any change to the specific generic directory instead of having
to bload the include directory of periodic changes.
In kernel-version.mk we now use GENERIC_PLATFORM_DIR provided by
target.mk. To make this work, we need to move the inclusion of
kernel-version.mk in target.mk right after GENERIC_PLATFORM_DIR is
defined.
This also comes to permit downstream project to provide a custom generic
directory and specify the kernel version complete of the hash and the
minor version without having to affect other feeds.
In such case both generic and the target directory are provided as feeds
and OpenWrt reference these specific one instead of the generic one.
For downstream it's still suggested and preferable to all match the
shipped generic kernel minor version but this change permits to at least
enforce good practice instead of having to bloat OpenWrt include file of
all kind of downstream changes (making porting to OpenWrt mainline even
more difficult)
Link: https://github.com/openwrt/openwrt/pull/18537
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
The current CFLAGS (rv64imafdc) for the riscv64 targets do not contain
the full generic compute extension (g), as that also includes the
zicsr and zifencei extensions/instructions. Rename the default ISA to
'generic' to add distinction to the current binaries (although it's very
minimal), and use rv64gc for CFLAGS.
This is also a prep step for the upcoming gcv (vector-extension supporting)
targets like the Spacemit K1, and the thead-cores like the TH1520.
Compile-tested: all riscv64 targets
Runtime-tested:
- SiFive Unleashed (FU540)
- SiFive Unmatched (FU740)
- Nezha D1 (D1)
- VisionFive2 (JH7110)
Link: https://github.com/openwrt/openwrt/pull/18094
Tested-by: Chuanhong Guo <gch981213@gmail.com> # siflower target
Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
Remove the remaining special handling of procd-ujail in a same way as
the rest of the packages was handled in the commit 4c65359af4 ("build:
fix including busybox, procd and apk/opkg in imagebuilder").
Fixes: 44598c233d ("build: remove broken dependency of metadata on toplevel .config variables")
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Link: https://github.com/openwrt/openwrt/pull/16986
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add comments to build system makefile functions and variables to help
developers in understanding build system internals and ease the
development process.
This patch adds some documentation examples with proposed doxygen-like
syntax. Hopefully, this would start the discussion and result in
generation of the makefile documentation guidelines.
Signed-off-by: Sergey Matsievskiy <matsievskiysv@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16888
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Instead of relying on .config symbols for metadata, alter the DEFAULT
variable of affected packages. Fixes enabling opkg vs apk among others.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
The config options that are enabled by default and where other default
packages depends on should not only be set if there is no .config file,
but also if the .config exists but the config option (e.g.
CONFIG_SECCOMP) is missing in the file.
This is relevant, for example, if you are working with .config templates
and then want to complete the configuration using make defconfig.
Signed-off-by: Martin Schiller <ms@dev.tdt.de>
The fix in commit 847fad476f ("target.mk: improve handling of default
enabled SECCOMP") unfortunately does not work for targets where the ARCH
variable is set in ./$(SUBTARGET)/target.mk.
To get this working, the ./$(SUBTARGET)/target.mk must be included
before the check.
Fixes: 847fad476f ("target.mk: improve handling of default enabled SECCOMP")
Signed-off-by: Martin Schiller <ms@dev.tdt.de>
Handling default packages selection is really problematic and error
prone. In all the changes, the SECCOMP config is enabled by default if
supported by the target.
This is problematic for the scenario of the first .config creation where
this option will be enabled by default but the package default are
already being parsed.
This cause the reparsing of the default package on the next command and
the "outdated config" error. To better handle this special case, add
additiona logic to match the dependency in the config and check if
CONFIG_SECCOMP should be enabled by default in the scenario where a
.config needs to be init and doesn't exist.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Implement some logic to invalidate targetinfo files in tmp with the
changing of some config.
Some config might affect DEFAULT_PACKAGES list but DEFAULT_PACKAGES is
only evaluated once. This cause the interesting scenario where someone
install feeds packages, targetinfo is evaluated in tmp and then add some
config like CONFIG_USE_APK. Using make defconfig will still select OPKG
as default package as DEFAULT_PACKAGES in targetinfo has been already
evaluated in the feeds install and is never updated.
To handle this add some logic in toplevel.mk to cache the current state
of these special config and wipe targetinfo when these change.
This cause the targetinfo to be reevaluated and handle this REALLY
corner case.
Link: https://github.com/openwrt/openwrt/pull/15543
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
There is currently a problem with how some option that modify default
package configuration are parsed.
When the DEFAULT_PACKAGES list is composed, DUMP is used. Using DUMP
disable the loading of .config to remove and modification done by the
user to prevent any kind of conflict or strange thing one creating all
the info for each target. Because of this, .config is never parsed and
any check to CONFIG doesn't work (for the first creation of .config).
Later image build will check what is set in .config and the default
package list won't be parsed anymore.
This is problematic for some config that are OK to parse, for example
SELINUX or USE_APK.
To better handle them add some logic when DUMP is used to selectively
parse these option if present in a to-be-init .config so that option are
correctly parsed and DEFAULT_PACKAGES is correctly set.
Link: https://github.com/openwrt/openwrt/pull/15543
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
A new option called `USE_APK` is added which generated APK packages
(.apk) instead of OPKG packages (.ipk).
Some features like fstools `snapshot` command are not yet ported
Signed-off-by: Paul Spooren <mail@aparcar.org>
Add target for Loongson LoongArch64-based boards.
LoongArch is a new RISC ISA developed by Loongson. It's a bit like
MIPS or RISC-V. LoongArch includes both 32-bit and 64-bit versions
(LoongArch32/LoongArch64).
Loongson 3A5000 and 3A6000 are the two existing CPUs of LoongArch64
and is used for PC products. It's BIOS supports ACPI and UEFI-only
boot. These CPUs supports SMP and SMT.
At present only LoongArch64 is supported by linux kernel.
Toolchain requirement:
binutils >= 2.40
gcc >= 13.1
For details, please check the following links:
https://lwn.net/Articles/861951/https://loongson.github.io/LoongArch-Documentation/README-EN.html
Signed-off-by: Weijie Gao <hackpascal@gmail.com>
luci-app-filetransfer seems to be the only user of it, which got removed
earlier. Remove this package too.
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>