summary refs log tree commit diff stats
path: root/docs/devel
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2024-05-24 10:56:55 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2024-07-03 18:41:26 +0200
commit4408155ac593644f04e22db0656d79a0e198be63 (patch)
treed66a720e48be921fbf803c78b4ab3768ea778d93 /docs/devel
parent7b1070a7e17cc65c3134350728c85e1d218c3578 (diff)
downloadfocaccia-qemu-4408155ac593644f04e22db0656d79a0e198be63.tar.gz
focaccia-qemu-4408155ac593644f04e22db0656d79a0e198be63.zip
meson: Drop the .fa library suffix
The non-standard .fa library suffix breaks the link source
de-duplication done by Meson so drop it.

The lack of link source de-duplication causes AddressSanitizer to
complain ODR violations, and makes GNU ld abort when combined with
clang's LTO.

Fortunately, the non-standard suffix is not necessary anymore for
two reasons.

First, the non-standard suffix was necessary for fork-fuzzing.
Meson wraps all standard-suffixed libraries with --start-group and
--end-group. This made a fork-fuzz.ld linker script wrapped as well and
broke builds. Commit d2e6f9272d33 ("fuzz: remove fork-fuzzing
scaffolding") dropped fork-fuzzing so we can now restore the standard
suffix.

Second, the libraries are not even built anymore, because it is
possible to just use the object files directly via extract_all_objects().

The occurences of the suffix were detected and removed by performing
a tree-wide search with 'fa' and .fa (note the quotes and dot).

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-ID: <20240524-xkb-v4-4-2de564e5c859@daynix.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'docs/devel')
-rw-r--r--docs/devel/build-system.rst5
1 files changed, 0 insertions, 5 deletions
diff --git a/docs/devel/build-system.rst b/docs/devel/build-system.rst
index 39a1934c63..79eceb179d 100644
--- a/docs/devel/build-system.rst
+++ b/docs/devel/build-system.rst
@@ -235,16 +235,11 @@ Subsystem sourcesets:
   are then turned into static libraries as follows::
 
     libchardev = static_library('chardev', chardev_ss.sources(),
-                                name_suffix: 'fa',
                                 build_by_default: false)
 
     chardev = declare_dependency(objects: libchardev.extract_all_objects(recursive: false),
                                  dependencies: chardev_ss.dependencies())
 
-  As of Meson 0.55.1, the special ``.fa`` suffix should be used for everything
-  that is used with ``link_whole``, to ensure that the link flags are placed
-  correctly in the command line.
-
 Target-independent emulator sourcesets:
   Various general purpose helper code is compiled only once and
   the .o files are linked into all output binaries that need it.