Commit Graph

32132 Commits

Author SHA1 Message Date
Robert Yang
1501ab0c6e libiconv: remove 0001-Fix-link-error-when-compiling-with-gcc-O0.patch
The recipe and patches (including this patch) had been moved into meta-mingw,
this dangling patch is useless here, so should be removed.

(From OE-Core rev: b1c4661742d12cfd444043e597d01bd627ee4ca4)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-11 15:57:08 +01:00
Jussi Kukkonen
6fd50a6392 mesa: Split --with-platforms from egl PACKAGECONFIG
Mesa platforms no longer depend directly on egl. Current
implementation breaks without egl with x11 (which can happen with
mesa-gl).

Separate the platform selection. Make drm platform depend on gbm
PACKAGECONFIG by default.

(From OE-Core rev: 622d683273bab66f0b4dd385d083bff9fb7bb1de)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-11 15:57:08 +01:00
Khem Raj
0a672a7408 mpeg2dec: Fix textrels QA errors on arm
Fixes
WARNING: mpeg2dec-0.5.1-r0 do_package_qa: QA Issue: ELF binary '/mnt/a/oe/build/tmp/work/armv5te-bec-linux-musleabi/mpeg2dec/0.5.1-r0/packages-split/libmpeg2/usr/lib/libmpeg2.so.0.1.0' has relocations in .text [textrel]

(From OE-Core rev: bbcc5322d3d0eb9e87e78ec47e71e29860af39d7)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-11 15:57:08 +01:00
Khem Raj
23df57b150 valgrind: tests build fixes for musl
x86/aarch64 needed minor changes to make few testcases portable

(From OE-Core rev: 459907cd548b97e50b26036e6898d32685cee01e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-11 15:57:08 +01:00
Khem Raj
155cff6c9e world-broken.inc: Remove packages which are now buildable on musl
Delete the pinnings which are no longer required during world builds
becasue they have been fixed to build on musl

(From OE-Core rev: b82bc7f003d2133e818be5bd473e9c640d4b10bf)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-11 15:57:08 +01:00
Khem Raj
c08247e3c7 gcc: Fix libssh_nonshared linker specs for ppc/musl
The change to link libssp_nonshared.a only for musl was to move
spec file changes to config/linux.h under a conditional when
DEFAULT_LIBC == LIBC_MUSL which worked fine for all but ppc
since gcc for ppc provided its own linux.h overrides which are
used. This patch duplicates the change in those headers too

(From OE-Core rev: 9d39168a6acfa1f289a4448271c0bf9caaea10ec)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-11 15:57:08 +01:00
Khem Raj
2a44efbe83 musl: Update to latest on master
Bring in following changes

* fix missing volatile qualifier on lock in __get_locale
* remove ineffective compiler assist from printf
* fix undefined behavior in ptrace
* unify the use of FUTEX_PRIVATE
* fix undefined behavior in free
* reapply va_arg hacks removal to wprintf
* remove useless declarations in string.h
* allow specifying argv[0] when invoking a program via ldso command
* fix regression in dlopen promotion from RTLD_LOCAL to RTLD_GLOBAL
* ldso: avoid spurious & possible erroneous work for libs with no deps
* powerpc64: add single-instruction math functions
* fix clang CFLAGS checks and silence unused argument warnings
* s390x: add single-instruction math functions
* fix arm run-time abi string functions
* fix regression in getspnam[_r] error code for insufficient buffer size
* fix omission of microblaze user.h definitions
* fix iconv conversions for iso88592-iso885916
* handle errors from localtime_r in ctime_r
* set errno when getpw*_r, getgr*_r, and getspnam_r fail
* handle localtime errors in ctime
* handle mremap failure in realloc of mmap-serviced allocations
* getdate: correctly specify error number
* catopen: set errno to EOPNOTSUPP
* fix glob failure to match plain "/" to root directory
* use hard-coded sh4a atomic opcodes to avoid linker errors on sh

(From OE-Core rev: 1e109651acd53b8bad5bc2ccdf152d747a91f1ac)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-11 15:57:08 +01:00
Khem Raj
fee85d51a8 gcc: Use ucontext_t instead of ucontext
glibc 2.26 does not expose struct ucontext anymore

(From OE-Core rev: d70b9705b7997786bc95cf6e70c172470db3413c)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-11 15:57:08 +01:00
Khem Raj
8cf9059862 gcc-sanitizer: Fix build with glibc 2.26
sigaltstack is no more exposed by glibc see (bug 21517)
therefore adjust to use stack_t instead

Use res_state typedef instead of referring to __res_state struct

(From OE-Core rev: c5cb3a582531dd1b9c40df5bcaa6f8bf5b451a54)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-11 15:57:08 +01:00
Khem Raj
16cb2a0764 glibc: Enable obsoleted nsl
libnsl has been obsoleted in 2.26 and will be removed in future
until them we enable it

(From OE-Core rev: e8047c772f49fe5a4a18d54289d98fb2f98a8176)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-11 15:57:08 +01:00
Khem Raj
8281a70d9b glibc: Drop obsoleted bits/string.h from multilibbing
glibc 2.26 has dropped bits/string.h

(From OE-Core rev: 81da4f6f12744fd051510a4df4eaeac73c232469)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-11 15:57:08 +01:00
Khem Raj
1f4f343ff2 glibc: Upgrade to 2.25.90
Eventually it will be released as 2.26 final

(From OE-Core rev: 5a58883258206893d15990953c8691b05473eecb)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-11 15:57:08 +01:00
Jussi Kukkonen
715b05e9e1 piglit: Update to current git master
Update, remove backported patches.

(From OE-Core rev: 6733936c432a4e73c8dc63099c6abf7e393a1f93)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-11 15:57:08 +01:00
Richard Purdie
854c8c2e4c oeqa/tinfoil: Improve test_wait_event for race issues
The test could break in a variety of ways:

a) If BB_HEARTBEAT_EVENT was less than ~0.25 it would hang indefinitely
b) The mask is set after draining the event queue meaning a heartbeat event
   could have happened
c) The test exits once it sees the events it wants, it doesn't check for
   spurious events such as heartbeats which shouldn't have occured.
d) The hardcoded delay of 0.25 is nasty and shouldn't be needed.

I found a bitbake bug and fixed that meaning we don't need the delay any
more which fixes d). That means a) is no longer an issue either.

We now set the mask, then drain the queue meaning no spurious events should
be able to sneak in. The test is also tweaked to wait for 5s in total to
ensure spurious events don't occur such as heartbeat events we shouldn't see.

[YOCTO #11045]

(From OE-Core rev: 7dd5dfc4d56f1201110d947ce1ca3c6d64fbc7da)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:46 +01:00
Richard Purdie
af950e2c09 staging: Ensure a clean recipe sysroot removes addto_recipe_sysroot stamps
The commands:

bitbake nodejs-native;
bitbake nodejs-native -c clean;
bitbake nodejs-native;
bitbake -c addto_recipe_sysroot nodejs-native;
bitbake -c devshell nodejs-native;
bitbake -c addto_recipe_sysroot nodejs-native;
bitbake -c devshell nodejs-native;

never result in npm in the sysroot within devshell. The reason is the
addto_recipe_sysroot stamp isn't removed when do_fetch is run but the sysroot
is cleaned.

With this patch, the second devshell will contain npm, which I think is probably
the best outcome we can hope for here.

[YOCTO #11461]

(From OE-Core rev: c440298674ab3b960c83a127eedb9e1b66bddf78)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:46 +01:00
Jose Perez Carranza
aac343acc0 oeqa/sdk: Replace buildiptables for buildlzip tests
Buildiptables test cases are conflicting with images built with “musl”
as standard C library, in order to avoid those issues lzip package was
selected to be used on the tests as this does not have any "musl"
dependency.

[YOCTO #11713]

(From OE-Core rev: b798284f62b3cb171373716b1ee84403439314aa)

Signed-off-by: Jose Perez Carranza <jose.perez.carranza@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:46 +01:00
Khem Raj
3df1c95ba7 testimage: Use the renamed buildlzip
buildiptables has been replaced with buildlzip

(From OE-Core rev: 57cd682e05f82b63090b0cbb4a1d8feb3bfbff23)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:46 +01:00
Jose Perez Carranza
37e0cd0e91 oeqa/runtime: Replace buildiptables for buildlzip on runtime tests
Buildiptables test cases are conflicting with images built with “musl”
as standard C library, in order to avoid those issues lzip package was
selected to be used on the tests as this does not have any "musl"
dependency.

This patch is applicable for testimage tests

[YOCTO # 11713]

(From OE-Core rev: 41683e0ab316049e28b1f4ceaf39f0fe17722d92)

Signed-off-by: Jose Perez Carranza <jose.perez.carranza@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:46 +01:00
Andre McCurdy
72bdc49547 mirrors.bbclass: remove stale lsof ftp mirrors
Replace with an mapping for http://www.mirrorservice.org to align
with recent changes to SRC_URI in the lsof recipe and allow
non-current lsof tar files to be found in the /OLD subdirectory.

(From OE-Core rev: 2ea075ffd6a4d68be546f0c10fc94f7a27e8f761)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:46 +01:00
Andre McCurdy
3b9b16bd53 lsof: update SRC_URI
Upstream lsof releases are hosted on an ftp server which times out
download attempts from hosts for which it can not perform a DNS
reverse-lookup. See:

  https://people.freebsd.org/~abe/

http://www.mirrorservice.org seems to be the most commonly used
alternative (and using it for SRC_URI allows the custom
UPSTREAM_CHECK_URI to be removed).

(From OE-Core rev: 4e718242c1554021689a7946add055b22b81ec42)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:46 +01:00
Andre McCurdy
056923b2d9 lsof: minor recipe cleanup
- Add HOMEPAGE
  - Remove ${S} from LIC_FILES_CHKSUM path
  - Use tabs consistently to indent do_configure()
  - Re-order LIC_FILES_CHKSUM definition to follow OE style guide

(From OE-Core rev: 78701c5b873605240226c502de3b940097433596)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:46 +01:00
Leonardo Sandoval
9bf53388ad image_types: fix kernel target on elf's image dependencies
Kernel recipes provides 'virtual/kernel' so remove the native part.

(From OE-Core rev: 50e6f23ef1e304c335d44e3e8e7a6cfa5a93fa86)

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:46 +01:00
Ming Liu
59ec03c5bc linuxloader.bbclass: add musl libc support
Current linuxloader.bbclass does not support musl libc ldso, so add it
in.

After changing, now the linuxloader function will call a subfunction
according to which virtual/libc is being used, glibc or musl, the
linuxloader_musl function is made on top of the LDSO macro defined
in musl source, by mapping related OE variables to it.

Change tested on following machines:
"genericx86"
"genericx86-64"
"beaglebone"
"qemumips64"
"qemuarm64"
"mpc8315e-rdb"
"edgerouter"
"qemumips"
"kc705-microblazeel" - meta-xilinx
"qemuppc"

(From OE-Core rev: 5d4acaed81a811912e60d85c507bee819623369e)

Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:46 +01:00
Jussi Kukkonen
85a891e8e7 vulkan: RRECOMMEND mesa drivers
One less thing to remember when trying to build an image
with working vulkan.

(From OE-Core rev: 0fc904749f45bd7d679233cced9d5a155afac421)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:46 +01:00
Jussi Kukkonen
5da100c4eb mesa, gstreamer: Add "vulkan" DISTRO_FEATURE
It doesn't do much but does make enabling vulkan a little less fiddly.

(From OE-Core rev: a5ed54e5253006ce3a5a74c1243c949a42642ff7)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:46 +01:00
Jussi Kukkonen
4a51d254cf gstreamer1.0-plugins-bad: Add vulkan PACKAGECONFIG
This adds a Vulkan video sink (using xcb and/or wayland).

Add a few patches to fix the build.

(From OE-Core rev: a80a0b3981d129a945ddd775690963cefa15376a)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:46 +01:00
Jussi Kukkonen
5e4845d15e assimp: Add as dependency of vulkan-demos
Asset import library used by Sascha Willems Vulkan demos.

(From OE-Core rev: d3f7a18c8119c22b5120fc618396548259a012e7)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:46 +01:00
Jussi Kukkonen
d18c434487 vulkan: Upgrade 1.0.39.1 -> 1.0.51.0
Remove a patch that's no longer needed

(From OE-Core rev: da21b51ec84080b5e544b197e7fb49cb91642a31)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:46 +01:00
sweeaun
0224083dae perl: Support musl-x32 build
Existing musl fixups in perl recipe doesn't cover linux-muslx32.
This is fixed to support musl-x32 build.

(From OE-Core rev: 4a50250edb48510fa6382b2700a39a74847d287b)

Signed-off-by: sweeaun <swee.aun.khor@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:46 +01:00
sweeaun
4e0b857484 grub-efi: Support musl-x32
To build 64-bit binaries for musl-x32.

(From OE-Core rev: 28cd7c5a5cd0567439146eaa30c45301e76b71b6)

Signed-off-by: sweeaun <swee.aun.khor@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:45 +01:00
sweeaun
58b64cbc7c gnu-efi: Support musl-x32 build
To build 64-bit binaries for musl-x32.

(From OE-Core rev: a9301cbc90a61b54f99f321934f421d432ec8826)

Signed-off-by: sweeaun <swee.aun.khor@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:45 +01:00
sweeaun
0d5488b0bf siteinfo.bbclass: Support musl-x32
Modified targetinfo and osinfo to support musl-x32.

(From OE-Core rev: 94ed793a704dadf55481305b6ed49ae3f3e1fc66)

Signed-off-by: sweeaun <swee.aun.khor@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:45 +01:00
sweeaun
f33627f30b insane.bbclass: Support musl-x32
Added musl-x32 elf header into dictionary.

(From OE-Core rev: 305e2b3b3de1af0001d534e5c9ec126481dfd9dd)

Signed-off-by: sweeaun <swee.aun.khor@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:45 +01:00
Otavio Salvador
4f93b8528b mesa: etnaviv: fix shader miscompilation with more than 16 labels
The labels array may change its virtual address on a reallocation, so
it is invalid to cache pointers into the array. Rather than using the
pointer directly, remember the array index.

Fixes miscompilation of shaders in glmark2 ideas, leading to GPU hangs.

This is a backport from 17.1.5.

(From OE-Core rev: 7a0ababb9f5c7f09bf072412e0744dcf69534129)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:45 +01:00
Khem Raj
103c122214 ovmf: Fix build with toolchain defaulting to PIE
GCC44_IA32_X64_DLINK_COMMON and GCC49_IA32_X64_DLINK_COMMON
variables add to final linker flags that ovmf build forms
on its own, so trying to inject it from environment will not
work.

Here we add option to disable pie during linking, which should
have been accompanied with correcponding gcc/cflags.

Fixes

|   /mnt/a/oe/build/tmp/work/i586-bec-linux/ovmf/git-r0/git/Build/OvmfIa32/RELEASE_GCC5/IA32/OvmfPkg/AcpiTables/AcpiTables/OUTPUT/./Facs.dll: Bad definition for symbol '<unknown>'@0 or unsupported symbol type.  For example, absolute and undefined symbols are not supported.

(From OE-Core rev: 85476cdb19d5c383966ba753a71eaeb3622bd6b4)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:45 +01:00
Khem Raj
fd4ed9a464 security_flags.inc: Do not build gcc for powerpc with PIE defaults
Since we have disabled FPIE from SECURITY_CFLAGS already, we have
to ensure the same with gcc, otherwise gcc (on-device) will be built
defaulting to PIE, and such binaries will fail to execute

(From OE-Core rev: 4f3a9ccdb1d45804f4c094589e69e0bc87dc9c62)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:45 +01:00
Khem Raj
f2eb3d8068 gstreamer1.0-plugins-bad: Fix missing library with bcm egl
userland graphics driver provided libegl for rpi depends upon
symbols from vchostif library, therefore add it to linker cmdline

helps with loadng gst-gl plugins on rpi

(From OE-Core rev: c32dbe73f2089177a071ba81a9de82dac7741e44)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:45 +01:00
Khem Raj
1504f8f09b libunwind: We set -fPIE in security flags now if gcc is not configured for default PIE
(From OE-Core rev: 24755afceb38530215a59d53f37df31ca77b0b6e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:45 +01:00
Khem Raj
25018c4807 sysklogd: Improve build and fix runtime crash
Patch the makefile so it can respect flags from environment
add a patch to fix a run time crash

(From OE-Core rev: 39c00c7c42fe7e555eb65ea7c01bfc9cb8a34514)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:45 +01:00
Khem Raj
dc3b3a8df3 gcc: Link libssp_nonshared.a only on musl targets
glibc already provides the content for libssp_nonshared
in libc_nonshared.a therefore we dont need to make it
universal.

This also fixed build issues on glibc when linking statically
and using -fstack-protector

Fixed errors like
/mnt/a/oe/build/tmp/work/i586-bec-linux/aufs-util/3.14+gitAUTOINC+bdfcc0dcfc-r0/recipe-sysroot/usr/lib/../lib/libc.a(stack_chk_fail.o): In function `__stack_chk_fail':                                                                       /usr/src/debug/glibc/2.26-r0/git/debug/stack_chk_fail.c:27: multiple definition of `__stack_chk_fail_local'                                                                                                                                   /mnt/a/oe/build/tmp/work/i586-bec-linux/aufs-util/3.14+gitAUTOINC+bdfcc0dcfc-r0/recipe-sysroot/usr/lib/../lib/libssp_nonshared.a(libssp_nonshared_la-ssp-local.o):/usr/src/debug/gcc-runtime/7.1.0-r0/gcc-7.1.0/build.i586-bec-linux.i586-bec-linux/i586-bec-linux/libssp/../../../../../../../../work-shared/gcc-7.1.0-r0/gcc-7.1.0/libssp/ssp-local.c:47: first defined here                                                                                                              collect2: error: ld returned 1 exit status

(From OE-Core rev: d71eba26850838b2878efea3f8c392a2eb2ebbfb)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:45 +01:00
Khem Raj
fb3be142ce gcc7: Enable static PIE
(From OE-Core rev: 85557ab7bac7db80174205b7969965b7a6bece24)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:45 +01:00
Khem Raj
9deacd7f9e distutils,setuptools: Delete use of SECURITY_NO_PIE_CFLAGS
gcc can handle PIE in gcc driver

(From OE-Core rev: fcfe6d4ab4460f8358e13023022a5e909941ca93)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:45 +01:00
Khem Raj
6733a7873c security_flags.inc: Delete pinnings for SECURITY_NO_PIE_CFLAGS
GCC is configured correctly to pass PIE cflags/ldflags

(From OE-Core rev: e93765ffb5718b0fce84f0b8123963176dea95e4)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:45 +01:00
Khem Raj
c91314ec16 gcc: Introduce a knob to configure gcc to default to PIE
GCCPIE flag which is empty by default adds "--enable-default-pie"
configure option for harderned distros

We do not require to add -fpie -pie flag externally anymore

(From OE-Core rev: 1c7e195c94764d680a12a49b870f04cd58860f81)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:45 +01:00
Richard Purdie
a12d9164ea base: Add MultiConfigParsed handler to deal with unstable build signatures
This uses the newly added MultiConfigParsed event to handle problems where
checksums in multiconfig build were not fuctioning as expected.

The issue arises around SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS which contains
entries like:

* gcc-cross-${TARGET_ARCH}->virtual/${TARGET_PREFIX}libc-for-gcc
* gcc-cross-${TARGET_ARCH}->linux-libc-headers

These need to be expanded in the multiconfig data store but then placed
into the shared main datastore used by the siggen code. The only other
alternative would be a siggen instance for each multiconfig however that
seemed even more complex and invasive.

In real world usage, this issue would mean a qemux86 base config with
other armv5 and armv7 configs (e.g. beaglebone and qemuarm) would
try and build gcc-cross twice since dependencies normaly excluded
(e.g. linux-libc-headers) would now be included. This breaks sstate reuse
as well as breaking builds unless separate tmpdirs are used.

This patch adds all the entries for each multiconfig. Whilst there may
be duplicates, this shouldn't be an issue.

(From OE-Core rev: 7267e7c000c76c44d09835d4cd2bc485b6a39a2a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-08 13:34:45 +01:00
Amarnath Valluri
96e3848ba0 image.bbclass: create root symlinks in nativesdk target sysroot
To match with the target image, the generated nativesdk's target sysroot also
should have the root symlinks(/lib*, /bin/, /sbin). So, extended the
'create_merged_usr_symlinks' to reuse symlink creation part even for nativesdk
using POPULATE_SDK_PRE_TARGET_COMMAND.

(From OE-Core rev: 2d7a58ef7a9597fde868a0582153d1f9a3007f1e)

Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-06 14:38:15 +01:00
Amarnath Valluri
2ea87f74da insane.bbclass: Add package QA check for merged /usr.
This check makes sure that, when usrmerge distro feature enabled, no package
installs files to root (/bin, /sbin, /lib, /lib64) folders.

(From OE-Core rev: 9f52f9f60f5680d7a824dafb3334de624eceed4c)

Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-06 14:38:15 +01:00
Amarnath Valluri
66cf94e740 image: create symlinks needed for merged /usr
Prepare the symlinks required for merged /usr at the time of rootfs creation.

The links created in rootfs are:
/bin --> /usr/sbin
/sbin --> /usr/sbin
/lib --> /usr/lib
/lib64 --> /usr/lib64

We cannot make these symlinks as part of 'base-files' or some other package.
Because at rootfs creation, installation of the package(say kernel) that depends
on these root folders/links fails, if package manager installs this package
prior to base-files.

These symbolic links in top level folder should be present as long as
 - kernel tools use /lib/{module,firmware}
 - shell scripts uses "#!/bin/sh"

(From OE-Core rev: 3f978f24ae2cf831bd2b82270f6353edda6364a5)

Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-06 14:38:15 +01:00
Amarnath Valluri
4525708784 systemd: changes to support merged /usr
- Enable/disable the split-usr support in systemd based on 'usrmerge'
  DISTRO_FEATURE.
- Modify rootprefix to point to ${root_prefix}, rather than ${base_prefix}.
- And fixed firmware path to use ${nonarch_base_libdir} instead of hard-coded
  '/lib', because when 'usrmege' distro feature enabled this path would be
  '/usr/lib'.

(From OE-Core rev: 7ca0415c26d5a8b00716b0a49f069e26fdeac30c)

Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-06 14:38:15 +01:00
Amarnath Valluri
d8232565dc cross.bbclass: merged /usr support
Use ${root_prefix} instead of ${base_prefix} while setting
${target_base_prefix}, otherwise we might loose the root prefix configuration
change in case of 'usrmerge' distro feature is enabled.

(From OE-Core rev: 3ebb2da2eb1ff2f6072a2909e0ac71614e0db0bd)

Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-06 14:38:15 +01:00