mirror of
https://git.yoctoproject.org/poky
synced 2026-06-07 03:04:04 +00:00
kernel: Add kernel specific STRIP variable
strip can be coming from binutils or from llvm in some cases llvm-strip can fail on kernel Subprocess output:aarch64-yoe-linux-llvm-strip: error: Link field value 28 in section .rela.dyn is not a symbol table This helps in selecting which strip is used when building kernel (From OE-Core rev: 03973c8c1c93ddb1c8e05b773bfcc45aed73a99f) Signed-off-by: Khem Raj <raj.khem@gmail.com> Cc: Bruce Ashfield <bruce.ashfield@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -70,10 +70,13 @@ TARGET_AR_KERNEL_ARCH ?= ""
|
||||
HOST_AR_KERNEL_ARCH ?= "${TARGET_AR_KERNEL_ARCH}"
|
||||
TARGET_OBJCOPY_KERNEL_ARCH ?= ""
|
||||
HOST_OBJCOPY_KERNEL_ARCH ?= "${TARGET_OBJCOPY_KERNEL_ARCH}"
|
||||
TARGET_STRIP_KERNEL_ARCH ?= ""
|
||||
HOST_STRIP_KERNEL_ARCH ?= "${TARGET_STRIP_KERNEL_ARCH}"
|
||||
|
||||
KERNEL_CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_KERNEL_ARCH} -fuse-ld=bfd ${DEBUG_PREFIX_MAP} -fdebug-prefix-map=${STAGING_KERNEL_DIR}=${KERNEL_SRC_PATH} -fdebug-prefix-map=${STAGING_KERNEL_BUILDDIR}=${KERNEL_SRC_PATH}"
|
||||
KERNEL_LD = "${CCACHE}${HOST_PREFIX}ld.bfd ${HOST_LD_KERNEL_ARCH}"
|
||||
KERNEL_AR = "${CCACHE}${HOST_PREFIX}ar ${HOST_AR_KERNEL_ARCH}"
|
||||
KERNEL_OBJCOPY = "${CCACHE}${HOST_PREFIX}objcopy ${HOST_OBJCOPY_KERNEL_ARCH}"
|
||||
KERNEL_STRIP = "${CCACHE}${HOST_PREFIX}strip ${HOST_STRIP_KERNEL_ARCH}"
|
||||
TOOLCHAIN ?= "gcc"
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@ do_compile:append() {
|
||||
|
||||
for dtbf in ${KERNEL_DEVICETREE}; do
|
||||
dtb=`normalize_dtb "$dtbf"`
|
||||
oe_runmake $dtb CC="${KERNEL_CC} $cc_extra " LD="${KERNEL_LD}" OBJCOPY="${KERNEL_OBJCOPY}" ${KERNEL_EXTRA_ARGS}
|
||||
oe_runmake $dtb CC="${KERNEL_CC} $cc_extra " LD="${KERNEL_LD}" OBJCOPY="${KERNEL_OBJCOPY}" STRIP="${KERNEL_STRIP}" ${KERNEL_EXTRA_ARGS}
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
@@ -455,7 +455,7 @@ do_kernel_configme() {
|
||||
bbfatal_log "Could not find configuration queue (${meta_dir}/config.queue)"
|
||||
fi
|
||||
|
||||
CFLAGS="${CFLAGS} ${TOOLCHAIN_OPTIONS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}" CC="${KERNEL_CC}" LD="${KERNEL_LD}" OBJCOPY="${KERNEL_OBJCOPY}" ARCH=${ARCH} merge_config.sh -O ${B} ${config_flags} ${configs} > ${meta_dir}/cfg/merge_config_build.log 2>&1
|
||||
CFLAGS="${CFLAGS} ${TOOLCHAIN_OPTIONS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}" CC="${KERNEL_CC}" LD="${KERNEL_LD}" OBJCOPY="${KERNEL_OBJCOPY}" STRIP="${KERNEL_STRIP}" ARCH=${ARCH} merge_config.sh -O ${B} ${config_flags} ${configs} > ${meta_dir}/cfg/merge_config_build.log 2>&1
|
||||
if [ $? -ne 0 -o ! -f ${B}/.config ]; then
|
||||
bberror "Could not generate a .config for ${KMACHINE}-${LINUX_KERNEL_TYPE}"
|
||||
if [ ${KCONF_AUDIT_LEVEL} -gt 1 ]; then
|
||||
@@ -490,6 +490,7 @@ python do_config_analysis() {
|
||||
env['LD'] = d.getVar('KERNEL_LD')
|
||||
env['CC'] = d.getVar('KERNEL_CC')
|
||||
env['OBJCOPY'] = d.getVar('KERNEL_OBJCOPY')
|
||||
env['STRIP'] = d.getVar('KERNEL_STRIP')
|
||||
env['ARCH'] = d.getVar('ARCH')
|
||||
env['srctree'] = s
|
||||
|
||||
@@ -552,6 +553,7 @@ python do_kernel_configcheck() {
|
||||
env['LD'] = d.getVar('KERNEL_LD')
|
||||
env['CC'] = d.getVar('KERNEL_CC')
|
||||
env['OBJCOPY'] = d.getVar('KERNEL_OBJCOPY')
|
||||
env['STRIP'] = d.getVar('KERNEL_STRIP')
|
||||
env['ARCH'] = d.getVar('ARCH')
|
||||
env['srctree'] = s
|
||||
|
||||
|
||||
@@ -235,7 +235,7 @@ UBOOT_LOADADDRESS ?= "${UBOOT_ENTRYPOINT}"
|
||||
# Some Linux kernel configurations need additional parameters on the command line
|
||||
KERNEL_EXTRA_ARGS ?= ""
|
||||
|
||||
EXTRA_OEMAKE += ' CC="${KERNEL_CC}" LD="${KERNEL_LD}" OBJCOPY="${KERNEL_OBJCOPY}"'
|
||||
EXTRA_OEMAKE += ' CC="${KERNEL_CC}" LD="${KERNEL_LD}" OBJCOPY="${KERNEL_OBJCOPY}" STRIP="${KERNEL_STRIP}"'
|
||||
EXTRA_OEMAKE += ' HOSTCC="${BUILD_CC}" HOSTCFLAGS="${BUILD_CFLAGS}" HOSTLDFLAGS="${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}"'
|
||||
EXTRA_OEMAKE += ' HOSTCXX="${BUILD_CXX}" HOSTCXXFLAGS="${BUILD_CXXFLAGS}"'
|
||||
|
||||
@@ -334,6 +334,10 @@ kernel_do_transform_bundled_initramfs() {
|
||||
}
|
||||
do_transform_bundled_initramfs[dirs] = "${B}"
|
||||
|
||||
python do_package:prepend () {
|
||||
os.environ['STRIP'] = d.getVar('KERNEL_STRIP')
|
||||
}
|
||||
|
||||
python do_devshell:prepend () {
|
||||
os.environ["LDFLAGS"] = ''
|
||||
}
|
||||
|
||||
@@ -20,6 +20,10 @@ python __anonymous () {
|
||||
d.setVar('KBUILD_EXTRA_SYMBOLS', " ".join(extra_symbols))
|
||||
}
|
||||
|
||||
python do_package:prepend () {
|
||||
os.environ['STRIP'] = d.getVar('KERNEL_STRIP')
|
||||
}
|
||||
|
||||
python do_devshell:prepend () {
|
||||
os.environ['CFLAGS'] = ''
|
||||
os.environ['CPPFLAGS'] = ''
|
||||
@@ -33,6 +37,7 @@ python do_devshell:prepend () {
|
||||
os.environ['LD'] = d.getVar('KERNEL_LD')
|
||||
os.environ['AR'] = d.getVar('KERNEL_AR')
|
||||
os.environ['OBJCOPY'] = d.getVar('KERNEL_OBJCOPY')
|
||||
os.environ['STRIP'] = d.getVar('KERNEL_STRIP')
|
||||
os.environ['O'] = d.getVar('STAGING_KERNEL_BUILDDIR')
|
||||
kbuild_extra_symbols = d.getVar('KBUILD_EXTRA_SYMBOLS')
|
||||
if kbuild_extra_symbols:
|
||||
@@ -47,6 +52,7 @@ module_do_compile() {
|
||||
KERNEL_VERSION=${KERNEL_VERSION} \
|
||||
CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
|
||||
AR="${KERNEL_AR}" OBJCOPY="${KERNEL_OBJCOPY}" \
|
||||
STRIP="${KERNEL_STRIP}" \
|
||||
O=${STAGING_KERNEL_BUILDDIR} \
|
||||
KBUILD_EXTRA_SYMBOLS="${KBUILD_EXTRA_SYMBOLS}" \
|
||||
${MAKE_TARGETS}
|
||||
@@ -57,6 +63,7 @@ module_do_install() {
|
||||
oe_runmake DEPMOD=echo MODLIB="${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}" \
|
||||
INSTALL_FW_PATH="${D}${nonarch_base_libdir}/firmware" \
|
||||
CC="${KERNEL_CC}" LD="${KERNEL_LD}" OBJCOPY="${KERNEL_OBJCOPY}" \
|
||||
STRIP="${KERNEL_STRIP}" \
|
||||
O=${STAGING_KERNEL_BUILDDIR} \
|
||||
${MODULES_INSTALL_TARGET}
|
||||
|
||||
|
||||
@@ -29,6 +29,7 @@ do_configure() {
|
||||
for t in prepare scripts_basic scripts; do
|
||||
oe_runmake CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
|
||||
AR="${KERNEL_AR}" OBJCOPY="${KERNEL_OBJCOPY}" \
|
||||
STRIP="${KERNEL_STRIP}" \
|
||||
-C ${STAGING_KERNEL_DIR} O=${STAGING_KERNEL_BUILDDIR} $t
|
||||
done
|
||||
}
|
||||
|
||||
@@ -22,11 +22,13 @@ do_compile() {
|
||||
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS CC LD CPP
|
||||
oe_runmake CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
|
||||
AR="${KERNEL_AR}" OBJCOPY="${KERNEL_OBJCOPY}" \
|
||||
STRIP="${KERNEL_STRIP}" \
|
||||
-C ${STAGING_KERNEL_DIR} scripts
|
||||
oe_runmake KDIR=${STAGING_KERNEL_DIR} \
|
||||
M="${S}/runtime/uprobes/" \
|
||||
CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
|
||||
AR="${KERNEL_AR}" OBJCOPY="${KERNEL_OBJCOPY}" \
|
||||
STRIP="${KERNEL_STRIP}" \
|
||||
-C "${S}/runtime/uprobes/"
|
||||
fi
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user