diff mbox series

contrib/plugins: remove -soname argument

Message ID 20230907101811.469236-1-pbonzini@redhat.com
State New
Headers show
Series contrib/plugins: remove -soname argument | expand

Commit Message

Paolo Bonzini Sept. 7, 2023, 10:18 a.m. UTC
-soname is not needed for runtime-loaded modules.  For example, Meson says:

            if not isinstance(target, build.SharedModule) or target.force_soname:
                # Add -Wl,-soname arguments on Linux, -install_name on OS X
                commands += linker.get_soname_args(
                    self.environment, target.prefix, target.name, target.suffix,
                    target.soversion, target.darwin_versions)

(force_soname is set is shared modules are linked into a build target, which is not
the case here.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 contrib/plugins/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Philippe Mathieu-Daudé Sept. 7, 2023, 10:47 a.m. UTC | #1
On 7/9/23 12:18, Paolo Bonzini wrote:
> -soname is not needed for runtime-loaded modules.  For example, Meson says:
> 
>              if not isinstance(target, build.SharedModule) or target.force_soname:
>                  # Add -Wl,-soname arguments on Linux, -install_name on OS X
>                  commands += linker.get_soname_args(
>                      self.environment, target.prefix, target.name, target.suffix,
>                      target.soversion, target.darwin_versions)
> 
> (force_soname is set is shared modules are linked into a build target, which is not
> the case here.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>   contrib/plugins/Makefile | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/contrib/plugins/Makefile b/contrib/plugins/Makefile
> index b2b9db9f51a..db1bd04dfa6 100644
> --- a/contrib/plugins/Makefile
> +++ b/contrib/plugins/Makefile
> @@ -37,7 +37,7 @@ all: $(SONAMES)
>   	$(CC) $(CFLAGS) -c -o $@ $<
>   
>   lib%.so: %.o
> -	$(CC) -shared -Wl,-soname,$@ -o $@ $^ $(LDLIBS)
> +	$(CC) -shared -o $@ $^ $(LDLIBS)

This fixes on Darwin:

ld: unknown option: -soname
clang: error: linker command failed with exit code 1 (use -v to see 
invocation)
make: *** [plugins] Error 2

Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Richard Henderson Sept. 9, 2023, 5:21 p.m. UTC | #2
On 9/7/23 03:18, Paolo Bonzini wrote:
> -soname is not needed for runtime-loaded modules.  For example, Meson says:
> 
>              if not isinstance(target, build.SharedModule) or target.force_soname:
>                  # Add -Wl,-soname arguments on Linux, -install_name on OS X
>                  commands += linker.get_soname_args(
>                      self.environment, target.prefix, target.name, target.suffix,
>                      target.soversion, target.darwin_versions)
> 
> (force_soname is set is shared modules are linked into a build target, which is not
> the case here.
> 
> Signed-off-by: Paolo Bonzini<pbonzini@redhat.com>
> ---
>   contrib/plugins/Makefile | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~
diff mbox series

Patch

diff --git a/contrib/plugins/Makefile b/contrib/plugins/Makefile
index b2b9db9f51a..db1bd04dfa6 100644
--- a/contrib/plugins/Makefile
+++ b/contrib/plugins/Makefile
@@ -37,7 +37,7 @@  all: $(SONAMES)
 	$(CC) $(CFLAGS) -c -o $@ $<
 
 lib%.so: %.o
-	$(CC) -shared -Wl,-soname,$@ -o $@ $^ $(LDLIBS)
+	$(CC) -shared -o $@ $^ $(LDLIBS)
 
 clean:
 	rm -f *.o *.so *.d