Skip to contentSkip to conversation

package/uboot-tools: version.h collision

PATCH New Matt Weber 2 participants 5 messages Jul 27, 2018

lore
Share & tools
lore

Matt Weber

author
#0 lore raw

PATCH 1/1 package/uboot-tools: version.h collision

On some systems the host system or even the cross sysroot can contain a version.h. This leads to the wrong file being picked up and a PLAIN_VERSION undefined error.

This workaround symlinks the version.h into the tool folder to allow reordering of search folders.

Fixes
http://autobuild.buildroot.net/results/770/7702d5df36a6532aafdbe6e9e62709bbfa058b54/build-end.log
http://autobuild.buildroot.net/results/e34/e3401027d2fb3ce565ca9e2456a427afd3610a87/build-end.log
... additional can be found with these queries ...
http://autobuild.buildroot.net/?reason=uboot-tools-2018.03
http://autobuild.buildroot.net/?reason=uboot-tools-2018.05

Upstream: https://lists.denx.de/pipermail/u-boot/2018-July/336283.html

---
 ...rsion.h-workaround-sysroot-inc-order.patch | 53 +++++++++++++++++++
 1 file changed, 53 insertions(+)
 create mode 100644 package/uboot-tools/0004-include-version.h-workaround-sysroot-inc-order.patch
package/uboot-tools/0004-include-version.h-workaround-sysroot-inc-order.patch new file +53 -0
new file mode 100644
index 0000000000..89cec5bb34
@@ -0,0 +1,53 @@
+From 546ab8f1e4b91f12b4cc1b4b73bb89a1645a99a4 Mon Sep 17 00:00:00 2001
+From: Matt Weber <[email protected]>
+Date: Thu, 26 Jul 2018 22:16:17 -0500
+Subject: [PATCH] include/version.h: workaround sysroot inc order
+
+On some systems the host system or even the cross sysroot can
+contain a version.h.  This leads to the wrong file being picked
+up and a PLAIN_VERSION undefined error.
+
+This workaround symlinks the version.h into the tool folder to
+allow reordering of search folders.
+
+Fixes
+http://autobuild.buildroot.net/results/770/7702d5df36a6532aafdbe6e9e62709bbfa058b54/build-end.log
+http://autobuild.buildroot.net/results/e34/e3401027d2fb3ce565ca9e2456a427afd3610a87/build-end.log
+... additional can be found with these queries ...
+http://autobuild.buildroot.net/?reason=uboot-tools-2018.03
+http://autobuild.buildroot.net/?reason=uboot-tools-2018.05
+
+Upstream: https://lists.denx.de/pipermail/u-boot/2018-July/336283.html
+
+Signed-off-by: Matthew Weber <[email protected]>
+---
+ tools/env/Makefile | 3 ++-
+ tools/version.h    | 1 +
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+ create mode 120000 tools/version.h
+
+diff --git a/tools/env/Makefile b/tools/env/Makefile
+index 95a03c9..865fbc3 100644
+--- a/tools/env/Makefile
++++ b/tools/env/Makefile
+@@ -11,7 +11,8 @@
+ override HOSTCC = $(CC)
+ 
+ # Compile for a hosted environment on the target
+-HOST_EXTRACFLAGS  = $(patsubst -I%,-idirafter%, $(filter -I%, $(UBOOTINCLUDE))) \
++HOST_EXTRACFLAGS  = -I$(srctree)/tools \
++		$(patsubst -I%,-idirafter%, $(filter -I%, $(UBOOTINCLUDE))) \
+ 		-idirafter $(srctree)/tools/env \
+ 		-DUSE_HOSTCC \
+ 		-DTEXT_BASE=$(TEXT_BASE)
+diff --git a/tools/version.h b/tools/version.h
+new file mode 120000
+index 0000000..bb57607
+--- /dev/null
++++ b/tools/version.h
+@@ -0,0 +1 @@
++../include/version.h
+\ No newline at end of file
+-- 
+2.17.0
+
Signature · 1 line
2.17.0
#1 lore raw

PATCH 1/1 package/uboot-tools: version.h collision

Hello,

Quoted 14 lines · Matt Weber

On some systems the host system or even the cross sysroot can contain a version.h. This leads to the wrong file being picked up and a PLAIN_VERSION undefined error.

This workaround symlinks the version.h into the tool folder to allow reordering of search folders.

Fixes
http://autobuild.buildroot.net/results/770/7702d5df36a6532aafdbe6e9e62709bbfa058b54/build-end.log
http://autobuild.buildroot.net/results/e34/e3401027d2fb3ce565ca9e2456a427afd3610a87/build-end.log
... additional can be found with these queries ...
http://autobuild.buildroot.net/?reason=uboot-tools-2018.03
http://autobuild.buildroot.net/?reason=uboot-tools-2018.05

Quoted 3 lines

Upstream: https://lists.denx.de/pipermail/u-boot/2018-July/336283.html

This issue has already been fixed. It was btrfs-progs that was installing a version.h header directly in usr/include. It has been fixed by:

https://git.buildroot.org/buildroot/commit/package/btrfs-progs?id=83b40e1ea2e3ce046d7db442b01c3bfe52886ce8

I agree it is nice to fix it properly upstream so that the presence of a header with a conflicting name doesn't confuse U-Boot, but I don't think it's worth having this patch in Buildroot since the problem no longer occurs.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
#2 lore raw

PATCH 1/1 package/uboot-tools: version.h collision

Thomas,

Quoted 25 lines · Thomas Petazzoni

Hello,

Quoted 14 lines · Matt Weber

On some systems the host system or even the cross sysroot can contain a version.h. This leads to the wrong file being picked up and a PLAIN_VERSION undefined error.

This workaround symlinks the version.h into the tool folder to allow reordering of search folders.

Fixes
http://autobuild.buildroot.net/results/770/7702d5df36a6532aafdbe6e9e62709bbfa058b54/build-end.log
http://autobuild.buildroot.net/results/e34/e3401027d2fb3ce565ca9e2456a427afd3610a87/build-end.log
... additional can be found with these queries ...
http://autobuild.buildroot.net/?reason=uboot-tools-2018.03
http://autobuild.buildroot.net/?reason=uboot-tools-2018.05

Quoted 3 lines

Upstream: https://lists.denx.de/pipermail/u-boot/2018-July/336283.html

This issue has already been fixed. It was btrfs-progs that was installing a version.h header directly in usr/include. It has been fixed by:

Quoted 7 lines

https://git.buildroot.org/buildroot/commit/package/btrfs-progs?id=83b40e1ea2e3ce046d7db442b01c3bfe52886ce8

I agree it is nice to fix it properly upstream so that the presence of a header with a conflicting name doesn't confuse U-Boot, but I don't think it's worth having this patch in Buildroot since the problem no longer occurs.

Figured out why I though it was still an error, 2018.05.x doesn't have that btrfs patch and occasionally fails.

Matt

#3 lore raw

PATCH 1/1 package/uboot-tools: version.h collision

Hello,

Quoted 6 lines · Matthew Weber
Quoted 6 lines

This issue has already been fixed. It was btrfs-progs that was installing a version.h header directly in usr/include. It has been fixed by:

https://git.buildroot.org/buildroot/commit/package/btrfs-progs?id=83b40e1ea2e3ce046d7db442b01c3bfe52886ce8

Quoted 7 lines
Quoted 4 lines

I agree it is nice to fix it properly upstream so that the presence of a header with a conflicting name doesn't confuse U-Boot, but I don't think it's worth having this patch in Buildroot since the problem no longer occurs.

Figured out why I though it was still an error, 2018.05.x doesn't have that btrfs patch and occasionally fails.

I notified Peter about this, and he said he backported it to 2018.05:

http://lists.busybox.net/pipermail/buildroot/2018-July/226228.html

And indeed:

https://git.buildroot.org/buildroot/commit/?h=2018.05.x&id=2bc7184ba3b86149e473a266c185352418120abd

So it should already be fixed in 2018.05.

If you look at
http://autobuild.buildroot.net/?reason=uboot-tools-2018.03, the PLAIN_VERSION issue stopped on July 19. The more recent issue on July 27 is different, it is:

/home/peko/autobuild/instance-0/output/host/lib/gcc/arm-buildroot-linux-musleabihf/6.4.0/libgcc.a(_dvmd_lnx.o): In function `__aeabi_idiv0':
/home/peko/autobuild/instance-0/output/build/host-gcc-final-6.4.0/build/arm-buildroot-linux-musleabihf/libgcc/../../../libgcc/config/arm/lib1funcs.S:1354: undefined reference to `raise'
collect2: error: ld returned 1 exit status

This is due to -static missing while linking, in a purely static musl configuration. So that's obviously not related to version.h/btrfs-progs.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
#4 lore raw

PATCH 1/1 package/uboot-tools: version.h collision

Thomas,

Quoted 24 lines · Thomas Petazzoni

Hello,

Quoted 6 lines · Matthew Weber
Quoted 6 lines

This issue has already been fixed. It was btrfs-progs that was installing a version.h header directly in usr/include. It has been fixed by:

https://git.buildroot.org/buildroot/commit/package/btrfs-progs?id=83b40e1ea2e3ce046d7db442b01c3bfe52886ce8

Quoted 7 lines
Quoted 4 lines

I agree it is nice to fix it properly upstream so that the presence of a header with a conflicting name doesn't confuse U-Boot, but I don't think it's worth having this patch in Buildroot since the problem no longer occurs.

Figured out why I though it was still an error, 2018.05.x doesn't have that btrfs patch and occasionally fails.

I notified Peter about this, and he said he backported it to 2018.05:

http://lists.busybox.net/pipermail/buildroot/2018-July/226228.html

And indeed:

Quoted 8 lines

https://git.buildroot.org/buildroot/commit/?h=2018.05.x&id=2bc7184ba3b86149e473a266c185352418120abd

So it should already be fixed in 2018.05.

If you look at
http://autobuild.buildroot.net/?reason=uboot-tools-2018.03, the PLAIN_VERSION issue stopped on July 19. The more recent issue on July 27 is different, it is:

Ah true. Thanks for the clarification.

Quoted 8 lines

/home/peko/autobuild/instance-0/output/host/lib/gcc/arm-buildroot-linux-musleabihf/6.4.0/libgcc.a(_dvmd_lnx.o): In function `__aeabi_idiv0':
/home/peko/autobuild/instance-0/output/build/host-gcc-final-6.4.0/build/arm-buildroot-linux-musleabihf/libgcc/../../../libgcc/config/arm/lib1funcs.S:1354: undefined reference to `raise'
collect2: error: ld returned 1 exit status

This is due to -static missing while linking, in a purely static musl configuration. So that's obviously not related to version.h/btrfs-progs.

Yeah, noticed that one in my inbox this morning.

Matt