Commit Graph

23 Commits

Author SHA1 Message Date
Yann E. MORIN
55fc80260b packages: host gcc >= 4.8 is now guaranteed
... so we can drop all config options about it and previous versions.

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Arnout Vandecappelle <arnout@mind.be>
Cc: Peter Korsgaard <peter@korsgaard.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2019-10-27 10:00:29 +01:00
Thomas Petazzoni
2135e869a0 package/efivar: needs host gcc >= 4.8
The efivar code compiled for the host machine uses
__builtin_bswap16(), which is only available starting from gcc 4.8:

  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52624

So let's add a dependency on host gcc >= 4.8 to efivar and its unique
reverse dependency, efibootmgr.

Fixes:

  http://autobuild.buildroot.net/results/48ba906bb6f4dc0c8af43ec11be64f7168dd62fd/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2019-02-14 21:46:22 +01:00
Peter Korsgaard
d4c9879803 efibootmgr: drop unneeded include path workaround
The hard coded -I/usr/include/efivar has been dropped from the Makefile in
commit 000eb0020c02 (Set pkg-config binary as variable) which is part of
v13, so drop the unneeded (misnamed) EFIBOOTMSR_PATCH_HEADER_PATH workaround.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2019-01-08 16:04:46 +01:00
Peter Korsgaard
bb7a698001 efivar: bump version
Drop 0001-Use-z-muldefs-to-avoid-the-multiple-definitions-bug-.patch and
0003-Remove-some-extra-const-that-gcc-complains-about.patch as they are now
upstream.

The upstream repo moved to the 'rhboot' github project, so adjust upstream
URL in .mk and help text to match.

Drop dependency on !musl as it is now support since e04281e60cf0d
(makeguids: Ensure compatibility with other libcs).

Drop BINTARGETS workaround as this is fixed since 6c674283697 (Don't build
static by default).

Drop popt dependency as it is no longer needed since 1aec5e7891 (Replace
popt usage with getopt_long in efivar.c).

While we are at it, also add a hash for the license file.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-03-23 16:29:22 +01:00
Peter Korsgaard
283f45e807 efibootmgr: explicitly depend on host-pkgconf and popt
efibootmgr uses host-pkgconf and popt, so explicitly add them to
_DEPENDENCIES instead of relying on them getting pulled in by efivar.

[Peter: reword as suggested by Thomas]
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-03-23 16:28:46 +01:00
Peter Korsgaard
6898144768 efibootmgr: bump version
Drop 0001-dont-use-fshort-wchar-when-building.patch and
0003-Remove-extra-const-keywords-gcc-7-gripes-about.patch as they are now
upstream.

The upstream repo moved to the 'rhboot' github project, so adjust upstream
URL in .mk and help text to match.

Version 15 introduces build time configuration of the default EFI directory
(E.G. the subdirectory in the EFI system partition where the loader is
installed).  This used to be hardcoded to redhat, but now a value must be
specified at build time.  Given that, it is unlikely that people relied on
the default value so set it to the more sensible 'buildroot'.

While we are at it, also add a hash for the license file.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-03-22 23:45:47 +01:00
Adam Duskett
474e049f96 package/e*: fix wrapping of Config.in help text
The check-package script when ran gives warnings on text wrapping
on all of these Config files.  This patch cleans up all warnings
related to the text wrapping for the Config files starting with
the letter e in the package directory.

The appropriate indentation is: <tab><2 spaces><62 chars>
See http://nightly.buildroot.org/#writing-rules-config-in for more
information.

Signed-off-by: Adam Duskett <aduskett@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-07-31 19:08:47 +02:00
Thomas Petazzoni
cefdd65460 efibootmgr: fix build with gcc 7.x
Now that the build of efivar with gcc 7.x has been fixed by commit
0ca3017034 ("efivar: fix build with gcc
7"), efibootmgr fails similarly with gcc 7.x.

This commit backports an upstream patch that fixes this issue.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-07-22 23:19:53 +02:00
Thomas Petazzoni
2171d07315 efibootmgr: use the new gettext logic
This commit switches to use the new gettext logic, which involves:

 - using TARGET_NLS_DEPENDENCIES instead of hand-encoded dependencies
   on gettext/host-gettext

 - using TARGET_NLS_LIBS to force linking against libintl

 - dropping BR2_PACKAGE_GETTEXT selection

The BR2_USE_WCHAR dependency was needed for gettext, now that we no
longer need gettext, we can also get rid of this dependency.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-07-05 01:27:25 +02:00
Thomas Petazzoni
57180155ca efibootmgr: don't download patch from Github
Patches downloaded from Github are not stable, so bring them in the
tree.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2017-07-03 00:05:18 +02:00
Thomas Petazzoni
3e254b82c7 efibootmgr: backport upstream patch to fix build with gcc 6.x
efibootmgr was built with -fshort-wchar, which causes gcc to use
2-byte wchar_t instead of the normal 4-byte wchar_t. But this doesn't
work anymore with gcc 6.x, as it causes a build failure:

/home/test/autobuild/run/instance-3/output/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/6.3.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: warning: efibootmgr.o uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/home/test/autobuild/run/instance-3/output/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/6.3.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: warning: efi.o uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
/home/test/autobuild/run/instance-3/output/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/6.3.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: warning: unparse_path.o uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail

Upstream solution was do simply drop -fshort-wchar:

  3466fd05c8

So this commit simply backports this upstream patch.

Fixes:

  http://autobuild.buildroot.net/results/87c3ff2427331eb9ab31c9eb685fe80954a0a98f/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-05-11 09:46:40 +02:00
Adam Duskett
e2a7822415 package makefiles: clean up backslash spacing.
The check-package script when ran gave warnings on only using
one space before backslashes on all of these makefiles.
This patch cleans up all warnings related to the one space before
backslashes rule in the make files in the package directory.

Signed-off-by: Adam Duskett <aduskett@codeblue.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-04-22 15:57:23 +02:00
Rahul Bedarkar
af31c309e7 boot, linux, package: use SPDX short identifier for GPLv2/GPLv2+
We want to use SPDX identifier for license strings as much as possible.
SPDX short identifier for GPLv2/GPLv2+ is GPL-2.0/GPL-2.0+.

This change is done by using following command.
find . -name "*.mk" | xargs sed -ri '/LICENSE( )?[\+:]?=/s/\<GPLv2\>/GPL-2.0/g'

Signed-off-by: Rahul Bedarkar <rahulbedarkar89@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-04-01 15:16:38 +02:00
Erico Nunes
bde3fbe361 efibootmgr: depends on wchar
After commit 3ae07b4746 recently, efibootmgr now selects
BR2_PACKAGE_GETTEXT if the toolchain requires it.
gettext depends on wchar, so this dependency should be propagated as
well.
menuconfig currently complains loudly if you select efibootmgr, with an
error such as:

  warning: (... && BR2_PACKAGE_EFIBOOTMGR ... && ) selects
  BR2_PACKAGE_GETTEXT which has unmet direct dependencies
  (BR2_USE_WCHAR)

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-12-07 23:45:35 +01:00
Erico Nunes
0474d89de7 efivar: introduce BR2_PACKAGE_EFIVAR_ARCH_SUPPORTS
efivar only makes sense on platforms that support UEFI.
UEFI is only supported by some architectures at the moment, being mostly
employed on platforms such as x86, x86_64 and aarch64. Some other
platforms such as MIPS and PowerPC may have some unofficial UEFI
support. UEFI is also limited to little endian architectures.

efivar was being supported in Buildroot without architecture
restrictions so far, however this has led to the creation of a number of
hacks in the recipes, mostly for architectures that are not supported by
UEFI.
In order to avoid spending more time to debug these failures and
maintaining more hacks for unsupported architectures, efivar can be
restricted to that platforms where it makes sense and where it is more
likely to receive some testing and actual usage.

The existing hacks for the now unsupported architectures are removed,
and the dependency is propagated to efibootmgr as it depends on efivar.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-12-07 23:41:52 +01:00
Rahul Bedarkar
fb0d4b5575 efivar: not available for static builds
efivar uses dlfcn.h which is not available in static builds
configuration. Also propagate dependency to efibootmgr. This commit
also does s/requires/needs/ in comment while at it.

Fixes:
  http://autobuild.buildroot.net/results/ab3/ab32ccacfac2e65e1fcb307058d06c3d0122979d/

Signed-off-by: Rahul Bedarkar <rahul.bedarkar@imgtec.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-12-05 21:31:08 +01:00
Andy Shevchenko
3ae07b4746 efibootmrg: Allow build with uClibc
Details at https://github.com/rhinstaller/efibootmgr/issues/61.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
[Thomas: efivar still doesn't build on musl, so same for efibootmgr.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-27 16:43:27 +01:00
Erico Nunes
93b83232d5 efibootmgr: fix reverse dependency from efivar
efivar minimum gcc version dependency changed from 4.7 to 4.9 in the
last efivar bump, so this must be reflected in efibootmgr Config.in as
well.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-10-02 21:32:30 +02:00
Erico Nunes
3413c4a0a8 efibootmgr: bump to version 14
Upstream has changed version numbering scheme since version 13, which
came after version 0.12.

There is now a make install target, so we can drop the manual file
installing. The make install target also installs the new efibootdump
tool.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-10-02 13:15:04 +02:00
Vicente Olivert Riera
5ae01db605 efivar: disable for some incompatible Sourcery CodeBench toolchains
linux/nvme.h has been renamed to linux/nvme_ioctl.h since 4.4, and we
have a patch to handle that situation. However, some Sourcery CodeBench
toolchains use 4.4 kernel headers but don't have that header file
renamed, and that is causing build failures. So, prevent this package
to be built using those toolchains.

Fixes:

  http://autobuild.buildroot.net/results/66c/66cf68261fa73c2366610f8d14bd02180ba7cd2d/
  http://autobuild.buildroot.net/results/54c/54cc7d4e3b284b35931e08f9c7f0f902df96a989/

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
[Romain:
  - add back slash on line breaks
  - propagate efivar dependencies to efibootmgr
  - add comments dependencies]
Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-07-03 17:00:29 +02:00
Erico Nunes
481310c9ad efivar: depends on target gcc >= 4.7
The efivar internal build system uses flags such as -std=gnu11 ,
-Wmaybe-uninitialized , -flto which are available in gcc >= 4.7 only.
These flags are passed both to target build and to build a host tool.
For the host part, this has been worked around by overriding
'gcc_flags', but doing that for the target would remove all flags that
upstream intended for the target build.

Buildroot doesn't support building gcc 4.6 in its own toolchain anymore
but it's possible to use an external toolchain with gcc 4.6 which would
be unable to build this package.

This patch adds a limitation on toolchains with target gcc >= 4.7 to
make sure that the flags are available in the chosen toolchain.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-07-01 16:31:29 +02:00
Thomas Petazzoni
416fd9cd13 Replace (e)glibc by glibc
Following the removal of eglibc support, this commit replaces all
occurences of "(e)glibc" by just "glibc". Most of the occurences are in
package Config.in comments.

In addition, when the form "an (e)glibc ..." was used, it is replaced by
"a glibc ...".

[Peter: add new efi* packages, s/uclibc/uClibc as suggested by Romain,
        systemd / liquid-dsp tweaks as suggested by Yann]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: Romain Naour <romain.naour@gmail.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-06-28 22:19:22 +02:00
Erico Nunes
c2d8af430d efibootmgr: new package
A Linux user-space application to modify the Intel Extensible Firmware
Interface (EFI) Boot Manager. This application can create and destroy
boot entries, change the boot order, change the next running boot
option, and more.

The only issue found was that it was trying to include headers from the
host, so $(STAGING_DIR) has been prepended to the include path so that
the package finds the right headers.

efibootmgr depends on the libraries provided by efivar.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
[Thomas:
  - change the "depends on" for efivar to a "select", and propagate the
    relevant dependencies.
  - the license is GPLv2+, not GPLv2.
  - move the Makefile tweak to a post-patch hook rather than doing it as
    part of the build step.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-06-12 18:31:01 +02:00