On 5/14/19 12:46 PM, Richard Henderson wrote: > On 5/14/19 9:50 AM, Daniel P. Berrangé wrote: >> On Tue, May 14, 2019 at 09:14:57AM -0700, Richard Henderson wrote: >>> Yes, that would do it. We would need something in the test that forces the >>> objects into the link. Without having yet looked at the test cases, any >>> ideas? >> >> I don't think this is only the test suite. I think it will affect all the >> binaries we build > > You're right, it does. > > $ nm aarch64-softmmu/qemu-system-aarch64 \ > | grep qcrypto_tls_creds_x509_register_types > > comes up empty. > > It didn't occur to me that there was nothing in the object files for the > reference. I'll have to drop the crypto-obj-y patch and come up with a > different solution.
Isn't there a gcc annotation for marking a simple as mandatorily included during link? /me goes looking... __attribute__((externally_visible)) sounds promising (it nullifies the effects of -fwhole-program, so that a function remains visible even if the linker would have otherwise suppressed it) __attribute__((used)) also sounds useful (the function must be emitted even if it does not appear to be referenced, which may be enough for the linker to infer that it is used) There may be other tricks, although I didn't go searching very hard. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org
signature.asc
Description: OpenPGP digital signature