BB File
-
SRC_URI : Storage location containing source
files (where to import source files), patch files to be applied to source
file
${GLIBC_GIT_URI} : git address
Branch:
Branch to check out
.patch
:(automatically, Yocto applies patch files on build)
- do_fetch : location to read
- do_configure : what to set at build (You can create config files by writing new
content.)
- do_comile : Compile command (insert command
to perform when compile)
- do_install : Location to install (insert
command to place the results generated after Compile is completed)
- Require keyword : Keyword used to include
script contents of other files (keyword "include" in C language)
- .bbappend : To
add a bb file. (Usually used to add compile options or patch files on the other board)
Yocto Example of an existing file : poky/meta/recipes-core/glibc/glibc_2.31.bb
require
glibc.inc
require
glibc-version.inc
DEPENDS +=
"gperf-native bison-native make-native"
NATIVESDKFIXES
?= ""
NATIVESDKFIXES_class-nativesdk
= "\
"
SRC_URI
=
"${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
\
${NATIVESDKFIXES} \
"
S =
"${WORKDIR}/git"
B =
"${WORKDIR}/build-${TARGET_SYS}"
PACKAGES_DYNAMIC
= ""
# the
-isystem in bitbake.conf screws up glibc do_stage
BUILD_CPPFLAGS
= "-I${STAGING_INCDIR_NATIVE}"
TARGET_CPPFLAGS
= "-I${STAGING_DIR_TARGET}${includedir}"
GLIBC_BROKEN_LOCALES
= ""
GLIBCPIE ??=
""
EXTRA_OECONF
= "--enable-kernel=${OLDEST_KERNEL} \
--disable-profile \
--disable-debug --without-gd \
--enable-clocale=gnu \
--with-headers=${STAGING_INCDIR} \
--without-selinux \
--enable-tunables \
--enable-bind-now \
--enable-stack-protector=strong
\
--enable-stackguard-randomization \
--disable-crypt \
--with-default-link \
--enable-nscd \
${@bb.utils.contains_any('SELECTED_OPTIMIZATION', '-O0 -Og',
'--disable-werror', '', d)} \
${GLIBCPIE} \
${GLIBC_EXTRA_OECONF}"
EXTRA_OECONF
+= "${@get_libc_fpu_setting(bb, d)}"
do_patch_append()
{
bb.build.exec_func('do_fix_readlib_c', d)
}
do_fix_readlib_c
() {
sed -i -e
's#OECORE_KNOWN_INTERPRETER_NAMES#${EGLIBC_KNOWN_INTERPRETER_NAMES}#'
${S}/elf/readlib.c
}
do_configure
() {
# override
this function to avoid the autoconf/automake/aclocal/autoheader
# calls for
now
# don't pass
CPPFLAGS into configure, since it upsets the kernel-headers
# version
check and doesn't really help with anything
(cd ${S} && gnu-configize) ||
die "failure in running gnu-configize"
find ${S} -name "configure" |
xargs touch
CPPFLAGS="" oe_runconf
}
LDFLAGS +=
"-fuse-ld=bfd"
do_compile
() {
base_do_compile
echo "Adjust ldd script"
if [ -n "${RTLDLIST}" ]
then
prevrtld=`cat ${B}/elf/ldd | grep "^RTLDLIST=" | sed
's#^RTLDLIST="\?\([^"]*\)"\?$#\1#'`
# remove duplicate entries
newrtld=`echo $(printf '%s\n' ${prevrtld} ${RTLDLIST} | LC_ALL=C sort
-u)`
echo "ldd \"${prevrtld} ${RTLDLIST}\" ->
\"${newrtld}\""
sed -i ${B}/elf/ldd -e
"s#^RTLDLIST=.*\$#RTLDLIST=\"${newrtld}\"#"
fi
}
require
glibc-package.inc
BBCLASSEXTEND
= "nativesdk"
#Yocto #Bitbake #BB #Command #Example