clang-21 decides to emit wcslen call on arm architecture
klibc does not provide widechar support so it should not
be used.
Fixes
| arm-yoe-linux-gnueabi-ld.bfd: usr/kinit/do_mounts_md.o: in function `md_run':
| /usr/src/debug/klibc/2.0.14/usr/kinit/do_mounts_md.c:294:(.text+0x5d6): undefined reference to `wcslen'
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Please see
https://git.yoctoproject.org/poky/commit/?id=4dd321f8b83afecd962393101b2a6861275b5265
for what changes are needed, and sed commands that can be used to make them en masse.
I've verified that bitbake -c patch world works with these, but did not run a world
build; the majority of recipes shouldn't need further fixups, but if there are
some that still fall out, they can be fixed in followups.
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Following reproducible-builds.org recommendations, using compiler flags
like -ffile-prefix-map or -fdebug-prefix-map allows replace build-time
paths by install-time ones in the debugging sections of binaries.
Variable DEBUG_PREFIX_MAP set these flags correctly in yocto build
context to guarantee reproducible builds.
Signed-off-by: Fabien Thomas <fabien.thomas@smile.fr>
Reviewed-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This is the result of automated script (0.9.1) conversion:
oe-core/scripts/contrib/convert-overrides.py .
converting the metadata to use ":" as the override character instead of "_".
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
gcc 10 defaults to -fno-common, but klibc does not build with
-fno-common, it will need some work to get there, until then use
-fcommon explicitly
Signed-off-by: Khem Raj <raj.khem@gmail.com>
clang would emit bcmp built-in for musl bases system
but here we do not link in musl C library, so its best
to disable it
Fixes
git/usr/klibc/memmem.c:38: undefined reference to `bcmp'
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Andrea Adami <andrea.adami@gmail.com>
Newer versions of clang optimize the calls to use unlocked variants of
these functions
Fixes
| capabilities.c:(.text+0xb4): undefined reference to `fread_unlocked'
| arm-yoe-linux-gnueabi-ld.bfd: capabilities.c:(.text+0x11a): undefined
reference to `fwrite_unlocked'
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Andrea Adami <andrea.adami@gmail.com>
Fix relocations like:
| mipsel-oe-linux-musl-ld.bfd: usr/klibc/libc.a(kill.o):
relocation R_MIPS_26 against `__syscall_common' can not be used when making a shared object; recompile with -fPIC
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
The MCONFIG makefiles for mips/mips64 do disable pic so we do not insist
linking it with -pie.
For aarch64 we have to readd the -Os optimization to avoid
| usr/dash/shell.h:103:25: error:
'-mgeneral-regs-only' is incompatible with floating-point argument
as committed (c296fb707a klibc: Pass Optimization with KLIBCOPTFLAGS)
but reverted (76bc58e932 klibc: Fix build with security flags) trying to
fix the i386 build (see ld.bfd: discarded output section: `.got.plt').
This latter issue was fixed for i386 passing -pie to the linker.
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
ld fails if distro's security-flags are enabled:
Inject the SECURITY_XFLAGS if security_flags.inc was included.
Fix on i386: ld: discarded output section: `.got.plt'
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Drop -Os which is also causing the relro
Fixes
| x86_64-bec-linux-musl-ld.bfd: discarded output section: `.got.plt'
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Andrea Adami <andrea.adami@gmail.com>
Let klcc understand '-no-integrated-as' which is a clang option used by
meta-clang for compiler defaults
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Andrea Adami <andrea.adami@gmail.com>
Overriding KLIBCOPTFLAGS also meant that -Ox flags
were taken off. Which results in errors like
| usr/dash/shell.h: In function 'max_int_length':
| usr/dash/shell.h:103:25: error: '-mgeneral-regs-only' is incompatible with floating-point code
| return (bytes * 8 - 1) * 0.30102999566398119521 + 14;
| ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
| usr/dash/shell.h:103:25: error: '-mgeneral-regs-only' is incompatible with floating-point argument
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
This is needed when building klcc-cross and klcc-cross
does not have do_configure, therefore stick this just before
do_compile
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
We were passing empty string '' to make as option when
ISA was not thumb this breaks build for machines/distros
which do not use ARM_INSTRUCTION_SET = thumb
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
klibc failed to build with armv7+ when using thumb2
it needed to resepct TUNE_CCARGS
Add patches to fix build with musl, to sort out
the linux header maze.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Andrea Adami <andrea.adami@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
klibc installs everything into /usr/lib by default. But the recipe assumes
it installs to ${libdir} which is /usr/lib64 in 64bit environment. Package
generation fails badly in this case. Set INSTALLDIR to fix this.
Signed-off-by: Michael Walle <michael@walle.cc>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Revert commit dd1ca18 removing ${PR}. Bad idea.
The shared lib could not be found giving this error:
Collected errors:
* satisfy_dependencies_for: Cannot satisfy the following dependencies for
klibc-utils-XXX:
* libklibc (= 2.0.4) *
* opkg_install: Cannot install package klibc-utils-XXX.
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Fixes:
WARNING: File 'usr/lib/klibc-HWWIvOaMdZy4N4-6rLLHAB2TjFQ.so'
from klibc was already stripped, this will prevent future debugging!
WARNING: File 'usr/lib/klibc/lib/klibc-HWWIvOaMdZy4N4-6rLLHAB2TjFQ.so'
from klibc was already stripped, this will prevent future debugging!
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Following debian packaging-style we have a copy of klibc-xxx.so in libklibc-dev.
(Comments can be found in klibc.spec.in)
Fixes:
ERROR: QA Issue: -dev package contains non-symlink .so:
ibklibc-dev path 'work/i586-oe-linux/klibc/2.0.4-r0/packages-split/
libklibc-dev/usr/lib/klibc/lib/klibc-HWWIvOaMdZy4N4-6rLLHAB2TjFQ.so'
-dev package contains non-symlink .so:
libklibc-dev path 'work/i586-oe-linux/klibc/2.0.4-r0/packages-split/
libklibc-dev/usr/lib/klibc/lib/libc.so' [dev-elf]
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Minimally rebase staging.patch and follow upstream commits.
Fixes:
| usr/klibc/socketcalls/socket.o: In function `socket':
| .../usr/klibc/socketcalls/socket.S:8: multiple definition of `socket'
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
32bit x86 is covered by the x86 over-ride, so duplicate over-rides for
i486/i586/i686/pentium are not required.
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
For the recipes built with klcc-cross it is necessary to
pass --sysroot otherwise we default to the one encoded in gcc-cross which
actually is the 'first one' built.
The issue was revealed when building for armv4 after having built for armv5te:
the produced binaries did contain Illegal Instruction (bx lr).
Use ${TOOLCHAIN_OPTIONS} variable to specify --sysroot=${STAGING_DIR_TARGET}
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
No runtime changes.
Reorder and fix some typos in the comments.
Remove unneeded empty do_install from utils.
Fix bogus PACKAGES_${PN} = "${PN}".
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
It's not necessary to specify the protocol parameter when it's the
default protocol for the fetcher, e.g. the default protocol for
git fetcher it git, "protocol=git" isn't needed.
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>