[OE-core] [morty][PATCH] elfutils: fix building elfutils-native with GCC7
This is heavily based on the oe-core master commit with the same subject, but includes a backport of upstream's fix for the fallthrough warnings rebased to 0.166 (the oe-core patch which targeted 0.168 did not apply), a rebase of the format-truncation patch, and a backport of the upstream format-length patch. Info from OE-Core master patch follows: From OE-Core rev: aaf4c4f3d09ac3897205417eb15e19d54e0c0d05 From: Joshua Lock Backport a fix from upstream for a -Wformat-truncation=2 warning and implement a simple fix for a -Wimplicit-fallthrough warning. Signed-off-by: Joshua Lock Signed-off-by: Richard Purdie Signed-off-by: Cody P Schafer --- ...-GCC7-Wimplicit-fallthrough-support-fixes.patch | 318 + .../0001-ar-Fix-GCC7-Wformat-length-issues.patch | 125 .../elfutils-0.166/Fix_one_GCC7_warning.patch | 45 +++ .../elfutils/elfutils-0.166/fallthrough.patch | 36 +++ meta/recipes-devtools/elfutils/elfutils_0.166.bb | 5 + 5 files changed, 529 insertions(+) create mode 100644 meta/recipes-devtools/elfutils/elfutils-0.166/0001-Add-GCC7-Wimplicit-fallthrough-support-fixes.patch create mode 100644 meta/recipes-devtools/elfutils/elfutils-0.166/0001-ar-Fix-GCC7-Wformat-length-issues.patch create mode 100644 meta/recipes-devtools/elfutils/elfutils-0.166/Fix_one_GCC7_warning.patch create mode 100644 meta/recipes-devtools/elfutils/elfutils-0.166/fallthrough.patch diff --git a/meta/recipes-devtools/elfutils/elfutils-0.166/0001-Add-GCC7-Wimplicit-fallthrough-support-fixes.patch b/meta/recipes-devtools/elfutils/elfutils-0.166/0001-Add-GCC7-Wimplicit-fallthrough-support-fixes.patch new file mode 100644 index 00..a240323f33 --- /dev/null +++ b/meta/recipes-devtools/elfutils/elfutils-0.166/0001-Add-GCC7-Wimplicit-fallthrough-support-fixes.patch @@ -0,0 +1,318 @@ +From 09949994e76eea3c1230a5c88ffa8fdf588b120f Mon Sep 17 00:00:00 2001 +From: Mark Wielaard +Date: Wed, 2 Nov 2016 13:29:26 +0100 +Subject: [PATCH] Add GCC7 -Wimplicit-fallthrough support/fixes. + +GCC7 will have a new -Wimplicit-fallthrough warning. It did catch one +small buglet in elflint option procession. So it seems useful to enable +to make sure all swatch case fallthroughs are deliberate. + +Add configure check to detect whether gcc support -Wimplicit-fallthrough +and enable it. Add fixes and explicit fallthrough comments where necessary. + +Signed-off-by: Mark Wielaard + +Upstream-Status: Backport +Upstream-Commit: a3cc8182b2ae05290b0eafa74b70746d7befc0e4 +--- + backends/alpha_retval.c| 4 +--- + backends/i386_regs.c | 1 + + backends/i386_retval.c | 3 +-- + backends/linux-core-note.c | 4 ++-- + backends/ppc_regs.c| 2 +- + backends/x86_64_regs.c | 1 + + config/eu.am | 8 +++- + configure.ac | 10 ++ + libcpu/i386_disasm.c | 2 +- + libdw/cfi.c| 2 ++ + libdw/encoded-value.h | 1 + + libdwfl/dwfl_report_elf.c | 2 +- + src/addr2line.c| 1 + + src/elfcompress.c | 3 ++- + src/elflint.c | 4 +++- + src/objdump.c | 4 +++- + tests/backtrace-data.c | 1 + + tests/backtrace.c | 2 +- + 18 files changed, 40 insertions(+), 15 deletions(-) + +diff --git a/backends/alpha_retval.c b/backends/alpha_retval.c +index 53dbfa45..7232b462 100644 +--- a/backends/alpha_retval.c b/backends/alpha_retval.c +@@ -130,9 +130,7 @@ alpha_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) + return nloc_intreg; + } + } +- +- /* Else fall through. */ +- ++ /* Fallthrough */ + case DW_TAG_structure_type: + case DW_TAG_class_type: + case DW_TAG_union_type: +diff --git a/backends/i386_regs.c b/backends/i386_regs.c +index fb8ded33..fd963a62 100644 +--- a/backends/i386_regs.c b/backends/i386_regs.c +@@ -92,6 +92,7 @@ i386_register_info (Ebl *ebl __attribute__ ((unused)), + case 5: + case 8: + *type = DW_ATE_address; ++ /* Fallthrough */ + case 0 ... 3: + case 6 ... 7: + name[0] = 'e'; +diff --git a/backends/i386_retval.c b/backends/i386_retval.c +index 9da797d5..4aa646fe 100644 +--- a/backends/i386_retval.c b/backends/i386_retval.c +@@ -122,9 +122,8 @@ i386_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) + return nloc_intreg; + if (size <= 8) + return nloc_intregpair; +- +- /* Else fall through. */ + } ++/* Fallthrough */ + + case DW_TAG_structure_type: + case DW_TAG_class_type: +diff --git a/backends/linux-core-note.c b/backends/linux-core-note.c +index ff2b226f..321721f3 100644 +--- a/backends/linux-core-note.c b/backends/linux-core-note.c +@@ -219,8 +219,8 @@ EBLHOOK(core_note) (const GElf_Nhdr *nhdr, const char *name, + case sizeof "CORE": + if (memcmp (name, "CORE"
Re: [OE-core] [morty][PATCH] gcc-6.2: backport fix of check for empty string in ubsan.c
On Wed, Jun 7, 2017 at 2:46 PM, Cody P Schafer wrote: > From: Joshua Lock > > Building gcc-cross-initial with GCC7 on the host fails due to the > comparison of a pointer to an integer in ubsan_use_new_style_p, which > is forbidden by ISO C++: The patch to oe-core master was for gcc 6.3, I've modified it to apply to gcc 6.2 (which is in morty). We probably also need to backport the CVE patch, and examine the 6.2..6.3 log to see if there are any other critical patches. Or just put gcc 6.3 into morty. This at just gets gcc building for me again. -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [morty][PATCH] gcc-6.2: backport fix of check for empty string in ubsan.c
From: Joshua Lock Building gcc-cross-initial with GCC7 on the host fails due to the comparison of a pointer to an integer in ubsan_use_new_style_p, which is forbidden by ISO C++: ubsan.c:1474:23: error: ISO C++ forbids comparison between pointer and integer [-fpermissive] || xloc.file == '\0' || xloc.file[0] == '\xff' Backport the fix from upstream GCC to enable the build with GCC 7 (From OE-Core rev: 7a7fcbab0365b9501c737dbc02715be14dda72a3) Signed-off-by: Joshua Lock Signed-off-by: Richard Purdie Signed-off-by: Cody P Schafer --- meta/recipes-devtools/gcc/gcc-6.2.inc | 5 ++-- .../gcc/gcc-6.2/ubsan-fix-check-empty-string.patch | 28 ++ 2 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 meta/recipes-devtools/gcc/gcc-6.2/ubsan-fix-check-empty-string.patch diff --git a/meta/recipes-devtools/gcc/gcc-6.2.inc b/meta/recipes-devtools/gcc/gcc-6.2.inc index b118995e1d..39ae653805 100644 --- a/meta/recipes-devtools/gcc/gcc-6.2.inc +++ b/meta/recipes-devtools/gcc/gcc-6.2.inc @@ -80,8 +80,9 @@ SRC_URI = "\ file://0047-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch \ ${BACKPORTS} \ " -BACKPORTS = "" - +BACKPORTS = "\ + file://ubsan-fix-check-empty-string.patch \ +" SRC_URI[md5sum] = "9768625159663b300ae4de2f4745fcc4" SRC_URI[sha256sum] = "9944589fc722d3e66308c0ce5257788ebd7872982a718aa2516123940671b7c5" diff --git a/meta/recipes-devtools/gcc/gcc-6.2/ubsan-fix-check-empty-string.patch b/meta/recipes-devtools/gcc/gcc-6.2/ubsan-fix-check-empty-string.patch new file mode 100644 index 00..c0127198e0 --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc-6.2/ubsan-fix-check-empty-string.patch @@ -0,0 +1,28 @@ +From 8db2cf6353c13f2a84cbe49b689654897906c499 Mon Sep 17 00:00:00 2001 +From: kyukhin +Date: Sat, 3 Sep 2016 10:57:05 + +Subject: [PATCH] gcc/ * ubsan.c (ubsan_use_new_style_p): Fix check for empty + string. + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239971 138bc75d-0d04-0410-961f-82ee72b054a4 + +Upstream-Status: Backport +Signed-off-by: Joshua Lock + +--- + gcc/ubsan.c | 2 +- + 2 files changed, 5 insertions(+), 1 deletion(-) + +Index: gcc-6.3.0/gcc/ubsan.c +=== +--- gcc-6.3.0.orig/gcc/ubsan.c gcc-6.3.0/gcc/ubsan.c +@@ -1471,7 +1471,7 @@ ubsan_use_new_style_p (location_t loc) + + expanded_location xloc = expand_location (loc); + if (xloc.file == NULL || strncmp (xloc.file, "\1", 2) == 0 +- || xloc.file == '\0' || xloc.file[0] == '\xff' ++ || xloc.file[0] == '\0' || xloc.file[0] == '\xff' + || xloc.file[1] == '\xff') + return false; + -- 2.13.0 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [morty][PATCH] automake: Backport perl 5.22 fix
From: Marek Vasut Backport 13f00eb4493c "automake: port to Perl 5.22 and later" from automake upstream to fix build with perl 5.22 . (From OE-Core rev: 7fa044e799db651d45e4732e2527acfc2bc7cd47) Signed-off-by: Marek Vasut Cc: Ross Burton Cc: Richard Purdie Signed-off-by: Ross Burton Signed-off-by: Cody P Schafer --- ...0001-automake-port-to-Perl-5.22-and-later.patch | 32 ++ meta/recipes-devtools/automake/automake_1.15.bb| 4 ++- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-devtools/automake/automake/0001-automake-port-to-Perl-5.22-and-later.patch diff --git a/meta/recipes-devtools/automake/automake/0001-automake-port-to-Perl-5.22-and-later.patch b/meta/recipes-devtools/automake/automake/0001-automake-port-to-Perl-5.22-and-later.patch new file mode 100644 index 00..0e6895fb4b --- /dev/null +++ b/meta/recipes-devtools/automake/automake/0001-automake-port-to-Perl-5.22-and-later.patch @@ -0,0 +1,32 @@ +From 13f00eb4493c217269b76614759e452d8302955e Mon Sep 17 00:00:00 2001 +From: Paul Eggert +Date: Thu, 31 Mar 2016 16:35:29 -0700 +Subject: [PATCH] automake: port to Perl 5.22 and later + +Without this change, Perl 5.22 complains "Unescaped left brace in +regex is deprecated" and this is planned to become a hard error in +Perl 5.26. See: +http://search.cpan.org/dist/perl-5.22.0/pod/perldelta.pod#A_literal_%22{%22_should_now_be_escaped_in_a_pattern +* bin/automake.in (substitute_ac_subst_variables): Escape left brace. + +Upstream-Status: Backport [13f00eb4493c217269b76614759e452d8302955e] +--- + bin/automake.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/bin/automake.in b/bin/automake.in +index a3a0aa318..2c8f31e14 100644 +--- a/bin/automake.in b/bin/automake.in +@@ -3878,7 +3878,7 @@ sub substitute_ac_subst_variables_worker + sub substitute_ac_subst_variables + { + my ($text) = @_; +- $text =~ s/\${([^ \t=:+{}]+)}/substitute_ac_subst_variables_worker ($1)/ge; ++ $text =~ s/\$[{]([^ \t=:+{}]+)}/substitute_ac_subst_variables_worker ($1)/ge; + return $text; + } + +-- +2.11.0 + diff --git a/meta/recipes-devtools/automake/automake_1.15.bb b/meta/recipes-devtools/automake/automake_1.15.bb index a3c72fd334..61ae3ba3e3 100644 --- a/meta/recipes-devtools/automake/automake_1.15.bb +++ b/meta/recipes-devtools/automake/automake_1.15.bb @@ -21,7 +21,9 @@ RDEPENDS_${PN}_class-native = "autoconf-native hostperl-runtime-native" SRC_URI += " file://python-libdir.patch \ file://buildtest.patch \ file://performance.patch \ -file://new_rt_path_for_test-driver.patch" +file://new_rt_path_for_test-driver.patch \ +file://0001-automake-port-to-Perl-5.22-and-later.patch \ +" SRC_URI[md5sum] = "716946a105ca228ab545fc37a70df3a3" SRC_URI[sha256sum] = "7946e945a96e28152ba5a6beb0625ca715c6e32ac55f2e353ef54def0c8ed924" -- 2.13.0 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH v2] runqemu-export-rootfs: don't change RPC ports
RPC ports (also known as rpc program numbers) are values: - given to rpcbind (aka portmapper) to allow nfsv3 clients that don't know the tcp/udp port number of nfsd and mountd to look it up the tcp/udp port number, and to - allow a single transport (ie: tcp/udp port) to provide multiple sunrpc services. OE has carried patches to nfsutils & linux for some time to support the mountprog & nfsprog options. In the case of runqemu-export-rootfs, we don't need to use custom rpc program numbers because runqemu-export-rootfs tells unfsd not to register with the portmapper, and unfsd runs the nfs and mount rpc services on tcp/udp ports unfsd binds itself (iow: the tcp/udp ports are not shared in the sunrpc sense). Linux's nfs client does not query rpcbind when tcp/udp port numbers are specified (in net/sunrpc/clnt.c, call_bind checks for the tcp/udp port with xprt_bound() and skips the call to rpcbind if xprtsock.c's xs_setup_udp() or xs_setup_tcp() has found a non-zero tcp/udp port). The program numbers _are_ sent over the mount & nfs protocol (really, over sunrpc), and checked to match at both ends. As a result, even when rpcbind is unused, using different program numbers in unfsd vs linux nfs client causes mounts to fail (and nfsroot mounts to timeout). The result is that specifying custom program numbers in runqemu-export-rootfs doesn't solve any conflicts, it simply requires that users of runqemu-export-rootfs carry a kernel patch & adds 2 extra parameters to the kernel command line unnecessarily. Change runqemu-export-rootfs to use the default program numbers. For now, I have not dropped the custom program number patches to linux, nfs-utils, and unfsd just in case someone is using them in a non-runqemu-export-rootfs context. CC: Bruce Ashfield CC: Mark Hatle Signed-off-by: Cody P Schafer --- v2: add a much better commit message to clarify some confusion --- scripts/runqemu-export-rootfs | 8 ++-- 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/scripts/runqemu-export-rootfs b/scripts/runqemu-export-rootfs index c7992d8223..70cdcdbb13 100755 --- a/scripts/runqemu-export-rootfs +++ b/scripts/runqemu-export-rootfs @@ -77,10 +77,6 @@ if [ ! -d "$PSEUDO_LOCALSTATEDIR" ]; then exit 1 fi -# rpc.mountd RPC port -MOUNTD_RPCPORT=${MOUNTD_RPCPORT:=$[ 2 + $NFS_INSTANCE ]} -# rpc.nfsd RPC port -NFSD_RPCPORT=${NFSD_RPCPORT:=$[ 1 + $NFS_INSTANCE ]} # NFS server port number NFSD_PORT=${NFSD_PORT:=$[ 3049 + 2 * $NFS_INSTANCE ]} # mountd port number @@ -88,7 +84,7 @@ MOUNTD_PORT=${MOUNTD_PORT:=$[ 3048 + 2 * $NFS_INSTANCE ]} ## For debugging you would additionally add ## --debug all -UNFSD_OPTS="-p -N -i $NFSPID -e $EXPORTS -x $NFSD_RPCPORT -n $NFSD_PORT -y $MOUNTD_RPCPORT -m $MOUNTD_PORT" +UNFSD_OPTS="-p -N -i $NFSPID -e $EXPORTS -n $NFSD_PORT -m $MOUNTD_PORT" # See how we were called. case "$1" in @@ -130,7 +126,7 @@ case "$1" in fi echo " " echo "On your target please remember to add the following options for NFS" - echo "nfsroot=IP_ADDRESS:$NFS_EXPORT_DIR,nfsvers=3,port=$NFSD_PORT,mountprog=$MOUNTD_RPCPORT,nfsprog=$NFSD_RPCPORT,udp,mountport=$MOUNTD_PORT" + echo "nfsroot=IP_ADDRESS:$NFS_EXPORT_DIR,nfsvers=3,port=$NFSD_PORT,udp,mountport=$MOUNTD_PORT" ;; stop) if [ -f "$NFSPID" ]; then -- 2.13.0 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] runqemu-export-rootfs: don't change RPC ports
On Thu, Jun 1, 2017 at 1:02 PM, Mark Hatle wrote: > > The rpcbind runs on a privileged port (usually). So either you have to > 're-use' > the system wide on or run your own. On many environments, with a system wide > one, you will clash if someone else is offering the same services. So you are > forced to run your own and/or register then with a different set of port > numbers. > > This is absolutely needed in a multi-user or 'locked system' configuration > where > the user does not have permission to run these types of things. unfsd does not include rpcbind, it optionally uses the system's rpcbind. In the runqemu-export-rootfs case, unfsd does not use any rpcbind at all. Still not seeing anything that would require runqemu-export-rootfs to use custom rpc program numbers. -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] runqemu-export-rootfs: don't change RPC ports
> RPC Ports are just the bindings into rpcbind. The tcp/udp ports are the ones > that typically conflict and why this was all done to begin with. Ok, then it doesn't sound like that is a conflict or a "privileged ports" issue, and it is safe to drop the custom rpc program numbers ("RPC Ports") from `unfsd`s arguments & the kernel parameters. As I've noted, runqemu-export-rootfs does not register with rpcbind (we pass the `-p` flag to `unfsd`). Or is there something else system-wide which is keeping a list of rpc program numbers? -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] runqemu-export-rootfs: don't change RPC ports
> Non-root user can't create privileged ports. I presume you're speaking about tcp/udp ports here? (having the program numbers referred to as "RPC ports" in some contexts confuses things). Or does unfsd tell the kernel about it's rpc program numbers (called "RPC ports" in the script) somehow & restrict them too? If it is the first, it isn't clear why that is relevant: I'm not trying to have unfsd use privileged tcp/udp ports (it's already using non-privlidged tcp/udp ports). I'm trying to drop the custom rpc program numbers (which are referred to as "RPC Ports" in the script). -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] runqemu-export-rootfs: don't change RPC ports
> There's a patch that we've had for years to allow alternate RPC ports > to work with userspace NFS and co-exist with existing NFS servers. Ah, I see (I should have checked that sooner). "NFS: allow nfs root mount to use alternate rpc ports". I can likely just pull that into my kernel and have things work fine without changes to runqemu-export-rootfs. > This would have an impact on that functionality, so if we do need to > change those ports, the existing ones should be maintained with some > sort of option to change the nfsroot line. Yep, that makes sense. That said: it isn't completely clear to me that a seperate rpc program number (aka RPC port) is needed to avoid conflicts between 2 nfs instances in this case: - we don't have unfsd register with rpcbind (-p option), so the rpc program numbers won't conflict there. - using nfsroot implicitly adds the 'nolock' option, so there isn't a conflict there - I did my tests with the nfs kernel server running. There wasn't an immdiate issue observed with mounting and accessing both a kernel provided export & a unfsd provided export (using runqemu-export-rootfs) at the same time. Still, I'm not too familiar with all of the ins and outs of nfs. Is there somewhere I've overlooked where the program numbers could conflict? -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] runqemu-export-rootfs: don't change RPC ports
> The result of this is that trying to mount filesystems exported by > runqemu-export-rootfs in modern kernels (at least in 4.2 and later, and > probably more like 2.6.20 and later) doesn't actually work. To clarify, when using nfsroot with the current kernel & unfsd options, my boot stops, waits for the nfs root to appear, and then times out. When trying to mount normally (ie: via `mount -t nfs` of a very recent vintage in arch-linux), I get immediate "protocol family not supported" errors. With this change, both mount methods (nfsroot with new kernel options and normally mount) work without issue. > I'm honestly not sure how anyone was using this for nfsroot support. > Maybe an initramfs with a version of nfs-utils that could handle the > mountprog/nfsprog option was in use? Not sure. Or is there some yocto kernel patch to enable support for it? I'm running a custom kernel. -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] runqemu-export-rootfs: don't change RPC ports
The mountprog & nfsprog options given are not supported in the linux kernel, and the only references I can find to them are in the nfs-utils source, which notes: "mountprog" is supported only by the legacy mount command. The kernel mount client does not support this option. (and similar for nfsprog). The kernel (which is what parses `nfsroot=` when using nfsroot) has no understanding of nfsprog or mountprog. The result of this is that trying to mount filesystems exported by runqemu-export-rootfs in modern kernels (at least in 4.2 and later, and probably more like 2.6.20 and later) doesn't actually work. I'm honestly not sure how anyone was using this for nfsroot support. Maybe an initramfs with a version of nfs-utils that could handle the mountprog/nfsprog option was in use? Not sure. Signed-off-by: Cody P Schafer --- scripts/runqemu-export-rootfs | 8 ++-- 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/scripts/runqemu-export-rootfs b/scripts/runqemu-export-rootfs index c7992d8223..70cdcdbb13 100755 --- a/scripts/runqemu-export-rootfs +++ b/scripts/runqemu-export-rootfs @@ -77,10 +77,6 @@ if [ ! -d "$PSEUDO_LOCALSTATEDIR" ]; then exit 1 fi -# rpc.mountd RPC port -MOUNTD_RPCPORT=${MOUNTD_RPCPORT:=$[ 2 + $NFS_INSTANCE ]} -# rpc.nfsd RPC port -NFSD_RPCPORT=${NFSD_RPCPORT:=$[ 1 + $NFS_INSTANCE ]} # NFS server port number NFSD_PORT=${NFSD_PORT:=$[ 3049 + 2 * $NFS_INSTANCE ]} # mountd port number @@ -88,7 +84,7 @@ MOUNTD_PORT=${MOUNTD_PORT:=$[ 3048 + 2 * $NFS_INSTANCE ]} ## For debugging you would additionally add ## --debug all -UNFSD_OPTS="-p -N -i $NFSPID -e $EXPORTS -x $NFSD_RPCPORT -n $NFSD_PORT -y $MOUNTD_RPCPORT -m $MOUNTD_PORT" +UNFSD_OPTS="-p -N -i $NFSPID -e $EXPORTS -n $NFSD_PORT -m $MOUNTD_PORT" # See how we were called. case "$1" in @@ -130,7 +126,7 @@ case "$1" in fi echo " " echo "On your target please remember to add the following options for NFS" - echo "nfsroot=IP_ADDRESS:$NFS_EXPORT_DIR,nfsvers=3,port=$NFSD_PORT,mountprog=$MOUNTD_RPCPORT,nfsprog=$NFSD_RPCPORT,udp,mountport=$MOUNTD_PORT" + echo "nfsroot=IP_ADDRESS:$NFS_EXPORT_DIR,nfsvers=3,port=$NFSD_PORT,udp,mountport=$MOUNTD_PORT" ;; stop) if [ -f "$NFSPID" ]; then -- 2.13.0 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH v2 2/2] cmake.bbclass: use `cmake --build` to build & install
Rather than presuming `make` is the generator, use cmake's generic `cmake --build` feature (which knows to call the appropriate generator). Both DESTDIR and VERBOSE still behave as intended when used as environment variables instead of make variable-arguments. As cmake-based builds don't do any configuration with `make` invocations, we only pass `PARALLEL_MAKE{,INST}` (via a EXTRA_OECMAKE_BUILD variable) to the underlying build tool. Make & ninja support the same `-j N` option (and a few others), so this does happen to work for both. This makes it more straight forward for others to select other cmake generators (many folks have been reaching for `ninja` lately). CC: Andre McCurdy Signed-off-by: Cody P Schafer --- meta/classes/cmake.bbclass | 9 +++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass index 8b5f18d8e0..ac2c1519b0 100644 --- a/meta/classes/cmake.bbclass +++ b/meta/classes/cmake.bbclass @@ -31,6 +31,9 @@ OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM_class-native = "BOTH" EXTRA_OECMAKE_append = " ${PACKAGECONFIG_CONFARGS}" +EXTRA_OECMAKE_BUILD_prepend_task-compile = "${PARALLEL_MAKE} " +EXTRA_OECMAKE_BUILD_prepend_task-install = "${PARALLEL_MAKEINST} " + # CMake expects target architectures in the format of uname(2), # which do not always match TARGET_ARCH, so all the necessary # conversions should happen here. @@ -135,11 +138,13 @@ cmake_do_configure() { do_compile[progress] = "percent" cmake_do_compile() { - base_do_compile VERBOSE=1 + bbnote VERBOSE=1 cmake --build '${B}' -- ${EXTRA_OECMAKE_BUILD} + VERBOSE=1 cmake --build '${B}' -- ${EXTRA_OECMAKE_BUILD} } cmake_do_install() { - oe_runmake 'DESTDIR=${D}' install + bbnote DESTDIR='${D}' cmake --build '${B}' --target install -- ${EXTRA_OECMAKE_BUILD} + DESTDIR='${D}' cmake --build '${B}' --target install -- ${EXTRA_OECMAKE_BUILD} } EXPORT_FUNCTIONS do_configure do_compile do_install do_generate_toolchain_file -- 2.12.2 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH v2 1/2] cmake.bbclass: remove unneded cd ${B}
The default dir for do_compile & do_configure is already ${B}, no need to cd (other than broken appends) CC: Andre McCurdy Signed-off-by: Cody P Schafer --- meta/classes/cmake.bbclass | 2 -- 1 file changed, 2 deletions(-) diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass index 12df617ad8..8b5f18d8e0 100644 --- a/meta/classes/cmake.bbclass +++ b/meta/classes/cmake.bbclass @@ -135,12 +135,10 @@ cmake_do_configure() { do_compile[progress] = "percent" cmake_do_compile() { - cd ${B} base_do_compile VERBOSE=1 } cmake_do_install() { - cd ${B} oe_runmake 'DESTDIR=${D}' install } -- 2.12.2 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] binutils: package libbfd seperately
Some tools (my issue was with 'perf') only need the libbfd component of binutils, so we can save space in images by splitting it out. Previously, instead of `perf` pulling in `libbfd-VERSION.so`, it pulled in all the libraries and binaries from binutils. Signed-off-by: Cody P Schafer --- meta/recipes-devtools/binutils/binutils.inc | 4 1 file changed, 4 insertions(+) diff --git a/meta/recipes-devtools/binutils/binutils.inc b/meta/recipes-devtools/binutils/binutils.inc index 7efe13fdf6..068dce8ee0 100644 --- a/meta/recipes-devtools/binutils/binutils.inc +++ b/meta/recipes-devtools/binutils/binutils.inc @@ -21,6 +21,10 @@ EXTRANATIVEPATH_append_class-target = " chrpath-native" inherit autotools gettext multilib_header texinfo +# Split out libbfd-*.so so including perf doesn't include extra stuff +PACKAGE_BEFORE_PN += "libbfd" +FILES_libbfd = "${libdir}/libbfd-*.so" + FILES_${PN} = " \ ${bindir}/${TARGET_PREFIX}* \ ${libdir}/lib*-*.so \ -- 2.12.2 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] cmake.bbclass: use `cmake --build` to build & install
On Tue, May 2, 2017 at 12:49 PM, Andre McCurdy wrote: > On Tue, May 2, 2017 at 8:49 AM, Cody P Schafer wrote: >>>> do_compile[progress] = "percent" >>>> cmake_do_compile() { >>>> - cd ${B} >>> >>> Removing the redundant "cd ${B}" should perhaps be a separate commit? >> >> I'm not really seeing that as useful, change right now can be viewed >> as "moves the ${B} from being in `cd` to being part of the command >> line for `cmake --build`". Is fairly straight forward because cmake >> requires a path be specified (where `make` makes it optional). > > If ${B} is the default directory for both these tasks then "cd ${B}" > is redundant and can be removed. If it is not the default directory, > then removing it will potentially break do_compile_append() and > do_install_append() functions which rely on running in ${B}. That > logic doesn't depend on whether or not "cmake --build" takes care of > changing directory on it's own, so if "cd ${B}" is redundant, then > removing it should be standalone commit. meta/classes/base.bbclass 307:do_configure[dirs] = "${B}" 326:do_compile[dirs] = "${B}" ${B} is the default dir for do_compile & do_configure. Are we concerned about prepend scripts changing the directory to something not-${B} & appends implicitly relying on ${B} being the directory? It seems that prepends/appends should avoid changing directories &/or avoid depending on a specific directory. Many (but not all) of the appends I've seen are pretty explicitly about the dirs they need (Using ${B}, ${S}, and ${WORKDIR} as needed instead of assuming the dir). Is there a policy on what the right thing to do is w.r.t. cwd changes within tasks & specifically within appends/prepends to tasks? -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] cmake.bbclass: use `cmake --build` to build & install
>> do_compile[progress] = "percent" >> cmake_do_compile() { >> - cd ${B} > > Removing the redundant "cd ${B}" should perhaps be a separate commit? I'm not really seeing that as useful, change right now can be viewed as "moves the ${B} from being in `cd` to being part of the command line for `cmake --build`". Is fairly straight forward because cmake requires a path be specified (where `make` makes it optional). > >> - base_do_compile VERBOSE=1 >> + VERBOSE=1 cmake --build '${B}' > > This looks like it will cause parallel make and EXTRA_OEMAKE options > to be ignored? That is a good point. I don't think EXTRA_OEMAKE should matter here too much as configuration for cmake-based builds all is read at configure time, but the ${PARALLEL_MAKE} flag is definitely an issue. Doing this could work: VERBOSE=1 cmake --build '${B}' -- ${EXTRA_OEMAKE} (And similar for install) And for the case of `-jN` like flags, make & ninja happen to be compatible (they share a few other flags, like `-l` and `-n`. Another alternative is passing ${PARALLEL_MAKE} (and ${PARALLEL_MAKEINST}) instead of directly using ${EXTRA_OEMAKE}. Also: I took a look at what else `run_oemake` is doing, and it contains some output printing (`bbnote`s the make command & `die`s on make failure), which could be added directly around the `cmake --build` invocations instead. -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] cmake.bbclass: use `cmake --build` to build & install
Rather than presuming `make` is the generator, use cmake's generic `cmake --build` feature (which knows to call the appropriate generator). Both DESTDIR and VERBOSE still behave as intended when used as environment variables instead of make variable-arguments. This makes it more straight forward for others to select other cmake generators (many folks have been reaching for `ninja` lately). Signed-off-by: Cody P Schafer --- meta/classes/cmake.bbclass | 6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass index 12df617ad8..05ec50d385 100644 --- a/meta/classes/cmake.bbclass +++ b/meta/classes/cmake.bbclass @@ -135,13 +135,11 @@ cmake_do_configure() { do_compile[progress] = "percent" cmake_do_compile() { - cd ${B} - base_do_compile VERBOSE=1 + VERBOSE=1 cmake --build '${B}' } cmake_do_install() { - cd ${B} - oe_runmake 'DESTDIR=${D}' install + DESTDIR='${D}' cmake --build '${B}' --target install } EXPORT_FUNCTIONS do_configure do_compile do_install do_generate_toolchain_file -- 2.12.2 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] cmake: in SDK use OE env var to set default toolchain
Patch the location in cmake where the toolchain file is loaded to use the (new) OE_CMAKE_TOOLCHAIN_FILE variable to select a default toolchain if no toolchain has been specified. The cmake alias is removed. The alternatives: - shell alias fails when cmake is called indirectly (ex: a makefile managing several projects which calls cmake for some of them) because aliases are not inherited - wrapper script that unconditionally adds "-D..." breaks cmake's build tests and many other things as it causes cmake to believe it should be configuring things when it should not be. For example, `cmake -DCMAKE_TOOLCHAIN_FILE=... --build .` does not work (note that this also breaks people directly using `cmake --build .` with the current alias). Signed-off-by: Cody P Schafer --- ...ineSystem-use-oe-environment-vars-to-load.patch | 45 ++ .../cmake/cmake/environment.d-cmake.sh | 2 +- meta/recipes-devtools/cmake/cmake_3.7.2.bb | 4 +- 3 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch diff --git a/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch b/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch new file mode 100644 index 00..a2332879cf --- /dev/null +++ b/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch @@ -0,0 +1,45 @@ +From a42cfebcd6c684cccf8ad33e5bd5130f7cdba135 Mon Sep 17 00:00:00 2001 +From: Cody P Schafer +Date: Thu, 27 Apr 2017 11:35:05 -0400 +Subject: [PATCH] CMakeDetermineSystem: use oe environment vars to load default + toolchain file in sdk + +Passing the toolchain by: + + - shell aliases does not work if cmake is called by a script + - unconditionally by a wrapper script causes cmake to believe it is + configuring things when it is not (for example, `cmake --build` breaks). + +The OE_CMAKE_TOOLCHAIN_FILE variable is only used as a default if no +toolchain is explicitly specified. + +Setting the CMAKE_TOOLCHAIN_FILE cmake variable is marked as cached +because '-D' options are cache entries themselves. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Cody P Schafer +--- + Modules/CMakeDetermineSystem.cmake | 7 +++ + 1 file changed, 7 insertions(+) + +diff --git a/Modules/CMakeDetermineSystem.cmake b/Modules/CMakeDetermineSystem.cmake +index f34ec5d61..bcac3ef16 100644 +--- a/Modules/CMakeDetermineSystem.cmake b/Modules/CMakeDetermineSystem.cmake +@@ -74,6 +74,13 @@ else() + endif() + endif() + ++if(NOT DEFINED CMAKE_TOOLCHAIN_FILE) ++ if(DEFINED ENV{OE_CMAKE_TOOLCHAIN_FILE}) ++set(CMAKE_TOOLCHAIN_FILE "$ENV{OE_CMAKE_TOOLCHAIN_FILE}" CACHE FILEPATH "toolchain file") ++message(STATUS "Toolchain file defaulted to '${CMAKE_TOOLCHAIN_FILE}'") ++ endif() ++endif() ++ + # if a toolchain file is used, the user wants to cross compile. + # in this case read the toolchain file and keep the CMAKE_HOST_SYSTEM_* + # variables around so they can be used in CMakeLists.txt. +-- +2.12.2 + diff --git a/meta/recipes-devtools/cmake/cmake/environment.d-cmake.sh b/meta/recipes-devtools/cmake/cmake/environment.d-cmake.sh index 0eb56b66fa..64b6cf3c6a 100644 --- a/meta/recipes-devtools/cmake/cmake/environment.d-cmake.sh +++ b/meta/recipes-devtools/cmake/cmake/environment.d-cmake.sh @@ -1 +1 @@ -alias cmake="cmake -DCMAKE_TOOLCHAIN_FILE=$OECORE_NATIVE_SYSROOT/usr/share/cmake/OEToolchainConfig.cmake" +export OE_CMAKE_TOOLCHAIN_FILE="$OECORE_NATIVE_SYSROOT/usr/share/cmake/OEToolchainConfig.cmake" diff --git a/meta/recipes-devtools/cmake/cmake_3.7.2.bb b/meta/recipes-devtools/cmake/cmake_3.7.2.bb index f566a48cfb..1cb99869e6 100644 --- a/meta/recipes-devtools/cmake/cmake_3.7.2.bb +++ b/meta/recipes-devtools/cmake/cmake_3.7.2.bb @@ -6,7 +6,9 @@ DEPENDS += "curl expat zlib libarchive xz ncurses bzip2" SRC_URI_append_class-nativesdk = " \ file://OEToolchainConfig.cmake \ -file://environment.d-cmake.sh" +file://environment.d-cmake.sh \ +file://0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch \ +" # Strip ${prefix} from ${docdir}, set result into docdir_stripped python () { -- 2.12.2 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [morty][PATCH] gdb-cross-canadian: Depend on nativesdk-python3-importlib
From: George McCollister Add missing dependency on nativesdk-python3-importlib so the imp Python module is installed. Before this patch, running gdb from the sdk would give the following error: Python Exception No module named 'imp': Signed-off-by: George McCollister Signed-off-by: Ross Burton (From OE-Core rev: ad00a31fbe93e073a2d83616efcd08c5a7ef37c9) Signed-off-by: Cody P Schafer --- meta/recipes-devtools/gdb/gdb-cross-canadian.inc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meta/recipes-devtools/gdb/gdb-cross-canadian.inc b/meta/recipes-devtools/gdb/gdb-cross-canadian.inc index e53081d0c0..3ff1989538 100644 --- a/meta/recipes-devtools/gdb/gdb-cross-canadian.inc +++ b/meta/recipes-devtools/gdb/gdb-cross-canadian.inc @@ -14,7 +14,8 @@ GDBPROPREFIX = "--program-prefix='${TARGET_PREFIX}'" PACKAGECONFIG ??= "python readline" PACKAGECONFIG[python] = "--with-python=${WORKDIR}/python,--without-python,nativesdk-python3, \ nativesdk-python3-core nativesdk-python3-lang nativesdk-python3-re \ - nativesdk-python3-codecs nativesdk-python3-netclient" + nativesdk-python3-codecs nativesdk-python3-netclient \ + nativesdk-python3-importlib" PACKAGECONFIG[readline] = "--with-system-readline,--without-system-readline,nativesdk-readline" SSTATE_DUPWHITELIST += "${STAGING_DATADIR}/gdb" -- 2.11.0 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] cantarell-fonts: add inherit pkgconfig to get pkgconfig dependency
Without this, do_configure can fail with: | ../git/configure: line 2381: syntax error near unexpected token `0.19' | ../git/configure: line 2381: `PKG_PROG_PKG_CONFIG(0.19)' If pkgconfig-native happens to be added to the sysroot too late. Signed-off-by: Cody P Schafer --- meta/recipes-graphics/cantarell-fonts/cantarell-fonts_git.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_git.bb b/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_git.bb index e3e4cde..c71ab11 100644 --- a/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_git.bb +++ b/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_git.bb @@ -18,7 +18,7 @@ UPSTREAM_CHECK_GITTAGREGEX = "(?P(?!0\.13)(?!0\.10\.1)\d+\.\d+(\.\d+)+)" S = "${WORKDIR}/git" -inherit autotools allarch fontcache +inherit autotools allarch fontcache pkgconfig PACKAGECONFIG ??= "" PACKAGECONFIG[fontforge] = "--enable-source-rebuild=yes,--enable-source-rebuild=no,fontforge-native" -- 2.10.2 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] cmake: supply CMAKE_AR in toolchain file
I tried the bare set(CMAKE_AR ...) first, but found it was being ignored. A bit of googling found: http://www.cmake.org/Bug/view.php?id=13038 Which contains the solution I've used here. On Wed, Nov 12, 2014 at 11:08 AM, Burton, Ross wrote: > > On 12 November 2014 01:30, Cody P Schafer wrote: >> >> +set( CMAKE_AR ${OECMAKE_AR} CACHE FILEPATH "Archiver" ) > > > Curious - why does this line have CACHE FILEPATH "Archiver" when e.g. > CMAKE_C_COMPILER doesn't? Should one or other other be fixed? > > Ross -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] cmake: supply CMAKE_AR in toolchain file
--- meta/classes/cmake.bbclass | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass index 10f8f98..3549c38 100644 --- a/meta/classes/cmake.bbclass +++ b/meta/classes/cmake.bbclass @@ -13,6 +13,7 @@ inherit autotools # C/C++ Compiler (without cpu arch/tune arguments) OECMAKE_C_COMPILER ?= "`echo ${CC} | sed 's/^\([^ ]*\).*/\1/'`" OECMAKE_CXX_COMPILER ?= "`echo ${CXX} | sed 's/^\([^ ]*\).*/\1/'`" +OECMAKE_AR ?= "${AR}" # Compiler flags OECMAKE_C_FLAGS ?= "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} ${CFLAGS}" @@ -35,6 +36,7 @@ set( CMAKE_SYSTEM_PROCESSOR ${TARGET_ARCH} ) set( CMAKE_C_COMPILER ${OECMAKE_C_COMPILER} ) set( CMAKE_CXX_COMPILER ${OECMAKE_CXX_COMPILER} ) set( CMAKE_ASM_COMPILER ${OECMAKE_C_COMPILER} ) +set( CMAKE_AR ${OECMAKE_AR} CACHE FILEPATH "Archiver" ) set( CMAKE_C_FLAGS "${OECMAKE_C_FLAGS}" CACHE STRING "CFLAGS" ) set( CMAKE_CXX_FLAGS "${OECMAKE_CXX_FLAGS}" CACHE STRING "CXXFLAGS" ) set( CMAKE_ASM_FLAGS "${OECMAKE_C_FLAGS}" CACHE STRING "ASM FLAGS" ) -- 2.1.3 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] Avoid crashing if getgrnam() cannont find a group by the given name
Without this, we get (on systems without a 'mail' group): ERROR: Error executing a python function in /home/x/g/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.16.bb: The stack trace of python calls that resulted in this exception/failure was: File: 'fixup_perms', lineno: 231, function: 0227:each_file = os.path.join(root, f) 0228:fix_perms(each_file, fs_perms_table[dir].fmode, fs_perms_table[dir].fuid, fs_perms_table[dir].fgid, dir) 0229: 0230: *** 0231:fixup_perms(d) 0232: File: 'fixup_perms', lineno: 173, function: fixup_perms 0169:if len(lsplit) != 8 and not (len(lsplit) == 3 and lsplit[1].lower() == "link"): 0170:msg = "Fixup perms: %s invalid line: %s" % (conf, line) 0171:package_qa_handle_error("perm-line", msg, d) 0172:continue *** 0173:entry = fs_perms_entry(d.expand(line)) 0174:if entry and entry.path: 0175:fs_perms_table[entry.path] = entry 0176:f.close() 0177: File: 'fixup_perms', lineno: 32, function: __init__ File "fixup_perms", line 32, in __init__ File: 'fixup_perms', lineno: 44, function: _setdir File "fixup_perms", line 44, in _setdir File: 'fixup_perms', lineno: 75, function: _procgid File "fixup_perms", line 75, in _procgid Exception: KeyError: 'getgrnam(): name not found: mail' ERROR: Function failed: fixup_perms ERROR: Logfile of failure stored in: /home/x/obj/y/tmp/work/i586-poky-linux/linux-libc-headers/3.16-r0/temp/log.do_package.15841 ERROR: Task 400 (/home/x/g/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.16.bb, do_package) failed with exit code '1' Signed-off-by: Cody P Schafer --- meta/classes/package.bbclass | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index 2aec3e6..d7c970b 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass @@ -568,7 +568,10 @@ python fixup_perms () { elif gid.isdigit(): return int(gid) else: -return grp.getgrnam(gid).gr_gid +try: +return grp.getgrnam(gid).gr_gid +except Exception: + return -1 # Use for debugging the entries def __str__(self): -- 2.0.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core