All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] DO NOT APPLY - demo broken unnest-vars with clashing .o filenames
@ 2018-06-11 11:03 Daniel P. Berrangé
  2018-06-11 11:24 ` no-reply
  2018-06-11 11:31 ` no-reply
  0 siblings, 2 replies; 3+ messages in thread
From: Daniel P. Berrangé @ 2018-06-11 11:03 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Peter Maydell, Eric Blake, Paolo Bonzini,
	Daniel P. Berrangé

In a sub-directory source files may be conditionally built using a
Makefile.objs line such as

    crypto-obj-$(CONFIG_CTHULHU) = foo.o

It is also possible to add custom linker flags for when this
foo.o is later linked into a binary

    foo.o-libs = -lcthulhu

When the unqualfied 'foo.o' filename matches the name of an object in
another directory, however, it appears the linker flags leak out and
affect the linking of the foo.o from the other directory.

This patch demos the bug by adding a crypto/piix.o file. It should have
no effect because CONFIG_CTHULHU is not defined, however, the existence
of hw/pci-host/piix.o and hw/ide/piix.o in fact causes '-lcthulhu' to be
added to the link line twice, causing build failure:

$ make
  LINK    x86_64-softmmu/qemu-system-x86_64
/usr/bin/ld: cannot find -lcthuhlu
/usr/bin/ld: cannot find -lcthuhlu
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:193: qemu-system-x86_64] Error 1
make: *** [Makefile:482: subdir-x86_64-softmmu] Error 2

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 crypto/Makefile.objs | 4 ++++
 crypto/piix.c        | 2 ++
 2 files changed, 6 insertions(+)
 create mode 100644 crypto/piix.c

diff --git a/crypto/Makefile.objs b/crypto/Makefile.objs
index 2b99e08062..73b4548f12 100644
--- a/crypto/Makefile.objs
+++ b/crypto/Makefile.objs
@@ -38,3 +38,7 @@ crypto-obj-y += block-luks.o
 crypto-aes-obj-y = aes.o
 
 stub-obj-y += pbkdf-stub.o
+
+
+crypto-obj-$(CONFIG_CTHUHLU) += piix.o
+piix.o-libs = -lcthuhlu
diff --git a/crypto/piix.c b/crypto/piix.c
new file mode 100644
index 0000000000..367683f7bb
--- /dev/null
+++ b/crypto/piix.c
@@ -0,0 +1,2 @@
+
+random garbage as this ".c" file will never be built
-- 
2.17.0

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-06-11 12:17 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-11 11:03 [Qemu-devel] [PATCH] DO NOT APPLY - demo broken unnest-vars with clashing .o filenames Daniel P. Berrangé
2018-06-11 11:24 ` no-reply
2018-06-11 11:31 ` no-reply

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.