summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorTimothy Pearson <tpearson@raptorengineering.com>2017-08-27 16:27:02 -0500
committerTimothy Pearson <tpearson@raptorengineering.com>2017-08-27 16:27:02 -0500
commit70149e7efe56624c2fe6786070eb5420de877cdb (patch)
tree704a9eadcfc26bd9f10cf6e9dd3ae8673a58b8c3 /meta
parent528bdf528d8bfca7746543f61609b9aceb54d53b (diff)
downloadast2050-yocto-poky-70149e7efe56624c2fe6786070eb5420de877cdb.zip
ast2050-yocto-poky-70149e7efe56624c2fe6786070eb5420de877cdb.tar.gz
Make builds functional on Debian Stretch
Add AST2050 / KGPE-D16 files
Diffstat (limited to 'meta')
-rw-r--r--meta/conf/bitbake.conf6
-rw-r--r--meta/recipes-devtools/perl/perl-ptest.inc4
-rw-r--r--meta/recipes-devtools/pseudo/pseudo/pseudo-glibc-rtld-next-workaround.patch85
-rw-r--r--meta/recipes-devtools/pseudo/pseudo_1.6.4.bb1
4 files changed, 91 insertions, 5 deletions
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 2b3c110..b086cc9 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -485,10 +485,10 @@ PATCHRESOLVE = 'user'
# Build flags and options.
##################################################################
-export BUILD_CPPFLAGS = "-isystem${STAGING_INCDIR_NATIVE}"
-BUILDSDK_CPPFLAGS = "-isystem${STAGING_INCDIR}"
+export BUILD_CPPFLAGS = "-isystem${STAGING_INCDIR_NATIVE} -Wno-nonnull-compare -Wno-misleading-indentation -Wno-shift-negative-value -Wno-unused-const-variable -Wno-unused-but-set-variable"
+BUILDSDK_CPPFLAGS = "-isystem${STAGING_INCDIR} -Wno-nonnull-compare -Wno-misleading-indentation -Wno-shift-negative-value -Wno-unused-const-variable -Wno-unused-but-set-variable"
export CPPFLAGS = "${TARGET_CPPFLAGS}"
-export TARGET_CPPFLAGS = ""
+export TARGET_CPPFLAGS = "-Wno-nonnull-compare -Wno-misleading-indentation -Wno-shift-negative-value -Wno-unused-const-variable -Wno-unused-but-set-variable"
#export TARGET_CPPFLAGS = "-isystem${STAGING_DIR_TARGET}${includedir}"
export BUILD_CFLAGS = "${BUILD_CPPFLAGS} ${BUILD_OPTIMIZATION}"
diff --git a/meta/recipes-devtools/perl/perl-ptest.inc b/meta/recipes-devtools/perl/perl-ptest.inc
index 948ea7c..5f0989f 100644
--- a/meta/recipes-devtools/perl/perl-ptest.inc
+++ b/meta/recipes-devtools/perl/perl-ptest.inc
@@ -7,8 +7,8 @@ do_install_ptest () {
mkdir -p ${D}${PTEST_PATH}
sed -e "s:\/opt:\/usr:" -i Porting/add-package.pl
sed -e "s:\/local\/gnu\/:\/:" -i hints/cxux.sh
- tar -cf - * --exclude \*.o --exclude libperl.so --exclude Makefile --exclude makefile --exclude hostperl \
- --exclude miniperl --exclude generate_uudmap --exclude patches | ( cd ${D}${PTEST_PATH} && tar -xf - )
+ tar -c --exclude=\*.o --exclude=libperl.so --exclude=Makefile --exclude=makefile --exclude=hostperl \
+ --exclude=miniperl --exclude=generate_uudmap --exclude=patches * | ( cd ${D}${PTEST_PATH} && tar -x )
sed -i -e "s,${D},,g" \
-e "s,--sysroot=${STAGING_DIR_HOST},,g" \
diff --git a/meta/recipes-devtools/pseudo/pseudo/pseudo-glibc-rtld-next-workaround.patch b/meta/recipes-devtools/pseudo/pseudo/pseudo-glibc-rtld-next-workaround.patch
new file mode 100644
index 0000000..6710734
--- /dev/null
+++ b/meta/recipes-devtools/pseudo/pseudo/pseudo-glibc-rtld-next-workaround.patch
@@ -0,0 +1,85 @@
+We started seeing:
+
+No real function for mknod: /home/paul/poky_sdk/tmp/sysroots/x86_64-
+linux/usr/bin/../lib/pseudo/lib64/libpseudo.so: undefined symbol: mknod
+No real function for mknodat: /home/paul/poky_sdk/tmp/sysroots/x86_64-
+linux/usr/bin/../lib/pseudo/lib64/libpseudo.so: undefined symbol: mknodat
+
+In glibc 2.24 they've merged:
+
+https://sourceware.org/git/?p=glibc.git;a=commit;h=7d45c163d00c88d5875a112343c4ea3e61349e6b
+related to bugzilla entry:
+https://sourceware.org/bugzilla/show_bug.cgi?id=19509
+
+which means that the behaviour of RTLD_NEXT is slightly different.
+As far as I can tell, mknod has not been present in glibc for a while.
+To quote stat.h:
+
+/* To allow the `struct stat' structure and the file type `mode_t'
+ bits to vary without changing shared library major version number,
+ the `stat' family of functions and `mknod' are in fact inline
+ wrappers around calls to `xstat', `fxstat', `lxstat', and `xmknod',
+ which all take a leading version-number argument designating the
+ data structure and bits used. <bits/stat.h> defines _STAT_VER with
+ the version number corresponding to `struct stat' as defined in
+ that file; and _MKNOD_VER with the version number corresponding to
+ the S_IF* macros defined therein. It is arranged that when not
+ inlined these function are always statically linked; that way a
+ dynamically-linked executable always encodes the version number
+ corresponding to the data structures it uses, so the `x' functions
+ in the shared library can adapt without needing to recompile all
+ callers. */
+
+so I suspect mknod has not existed for a while, if ever and what we
+were finding, who knows. Everying in the system links against _xmknod
+which we have a separate wrapper for.
+
+Anyhow, ignoring that problem which hasn't caused a issue in the past,
+the RTLD_NEXT change causes messages to be printed to stdout which causes
+carnage if for example the packaging code is expecting a list of packages:
+
+WARNING: core-image-minimal-1.0-r0 do_rootfs: No not found in the base feeds (qemux86_64 core2-64 x86_64 noarch any all).
+WARNING: core-image-minimal-1.0-r0 do_rootfs: real not found in the base feeds (qemux86_64 core2-64 x86_64 noarch any all).
+WARNING: core-image-minimal-1.0-r0 do_rootfs: function not found in the base feeds (qemux86_64 core2-64 x86_64 noarch any all).
+WARNING: core-image-minimal-1.0-r0 do_rootfs: for not found in the base feeds (qemux86_64 core2-64 x86_64 noarch any all).
+WARNING: core-image-minimal-1.0-r0 do_rootfs: mknod: not found in the base feeds (qemux86_64 core2-64 x86_64 noarch any all).
+[etc]
+
+This bug will affect:
+* any distro using glibc 2.24
+* any system using a uninative tarball for glibc 2.24
+* any system which took a backport for the fix which was merged into
+ the 2.23 branch for a while before it was reverted (Fedora 23 had this)
+
+The easiest thing to do is to ignore the problem and disable the diag
+message which masks the problem with no ill effects.
+
+As Peter notes, there are a few issues here:
+
+* the fact there is no mknod symbol
+* the fact an error here isn't fatal
+* the #ifdef/#else looks suspect
+* handle RTLD_NEXT chaining properly (need more libs?)
+
+which he'll work on upstream and hopefully have fixed in a new version.
+
+Upstream-Status: Submitted [Peter is aware of the issue]
+
+RP 2016/5/18
+
+Index: pseudo-1.7.5/pseudo_wrappers.c
+===================================================================
+--- pseudo-1.7.5.orig/pseudo_wrappers.c
++++ pseudo-1.7.5/pseudo_wrappers.c
+@@ -146,9 +146,9 @@ pseudo_init_one_wrapper(pseudo_function
+ return;
+ }
+ #else
+- if (e != NULL) {
++ /*if (e != NULL) {
+ pseudo_diag("No real function for %s: %s\n", func->name, e);
+- }
++ }*/
+ #endif
+ }
+ }
diff --git a/meta/recipes-devtools/pseudo/pseudo_1.6.4.bb b/meta/recipes-devtools/pseudo/pseudo_1.6.4.bb
index 3d5b1fb..9bc1738 100644
--- a/meta/recipes-devtools/pseudo/pseudo_1.6.4.bb
+++ b/meta/recipes-devtools/pseudo/pseudo_1.6.4.bb
@@ -4,6 +4,7 @@ SRC_URI = " \
http://www.yoctoproject.org/downloads/${BPN}/${BPN}-${PV}.tar.bz2 \
file://fallback-passwd \
file://fallback-group \
+ file://pseudo-glibc-rtld-next-workaround.patch \
"
SRC_URI[md5sum] = "2fb800c90d643bfce55e1ce5ca67f3b3"
OpenPOWER on IntegriCloud