public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [ada, patch] fix libgnat build on x86_64-linux-gnux32 with glibc <= 2.31
@ 2022-10-31 15:33 Matthias Klose
  2022-11-07 13:50 ` Arnaud Charlet
  0 siblings, 1 reply; 2+ messages in thread
From: Matthias Klose @ 2022-10-31 15:33 UTC (permalink / raw)
  To: GCC Patches

This was introduced with the fix and backports of PR103530 on 
x86_64-linux-gnux32 with older glibc versions (checked with 2.31), where dladdr 
is still in the libdl.so library, and not included in libc.so as in newer glibc 
versions.
Linking of libgnat.so fails with

[...]
/usr/x86_64-linux-gnux32/bin/ld: s-trasym.o: in function 
`system__traceback__symbolic__module_na
me__getXnn':
collect2: error: ld returned 1 exit status
make[8]: *** [gcc-interface/Makefile:677: gnatlib-shared-default] Error 1

https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=9d6c63ba490ec92245f04b5cbafc56abd28e8d22

-- a/gcc/ada/Makefile.rtl
+++ b/gcc/ada/Makefile.rtl
@@ -2650,13 +2650,18 @@ ifeq ($(strip $(filter-out %x32 linux%,$(target_cpu) 
$(target_os))),)
    s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
    s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
+  $(TRASYM_DWARF_UNIX_PAIRS) \
+  s-tsmona.adb<libgnat/s-tsmona__linux.adb \
    $(ATOMICS_TARGET_PAIRS) \
    $(X86_64_TARGET_PAIRS) \
+  $(GNATRTL_128BIT_PAIRS) \
    system.ads<libgnat/system-linux-x86.ads

The addition of s-tsmona.adb<libgnat/s-tsmona__linux.adb pulls in the reference 
to dladdr, however not setting MISCLIB to -ldl as on other architectures

Proposed patch:


  PR ada/107475
  * Makefile.rtl: Set MISCLIB for x86_64-linux-gnux32.


--- a/gcc/ada/Makefile.rtl
+++ b/gcc/ada/Makefile.rtl
@@ -2584,6 +2584,7 @@ ifeq ($(strip $(filter-out %x32 linux%,$(target_cpu) 
$(target_os))),)
    EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
    EH_MECHANISM=-gcc
    THREADSLIB=-lpthread -lrt
+  MISCLIB = -ldl
    GNATLIB_SHARED=gnatlib-shared-dual
    GMEM_LIB = gmemlib
    LIBRARY_VERSION := $(LIB_VERSION)

Ok for the trunk and the branches?

Matthias

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

* Re: [ada, patch] fix libgnat build on x86_64-linux-gnux32 with glibc <= 2.31
  2022-10-31 15:33 [ada, patch] fix libgnat build on x86_64-linux-gnux32 with glibc <= 2.31 Matthias Klose
@ 2022-11-07 13:50 ` Arnaud Charlet
  0 siblings, 0 replies; 2+ messages in thread
From: Arnaud Charlet @ 2022-11-07 13:50 UTC (permalink / raw)
  To: Matthias Klose; +Cc: GCC Patches

> This was introduced with the fix and backports of PR103530 on
> x86_64-linux-gnux32 with older glibc versions (checked with 2.31), where
> dladdr is still in the libdl.so library, and not included in libc.so as in
> newer glibc versions.
> Linking of libgnat.so fails with
> 
> [...]
> /usr/x86_64-linux-gnux32/bin/ld: s-trasym.o: in function
> `system__traceback__symbolic__module_na
> me__getXnn':
> collect2: error: ld returned 1 exit status
> make[8]: *** [gcc-interface/Makefile:677: gnatlib-shared-default] Error 1
> 
> https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=9d6c63ba490ec92245f04b5cbafc56abd28e8d22
> 
> -- a/gcc/ada/Makefile.rtl
> +++ b/gcc/ada/Makefile.rtl
> @@ -2650,13 +2650,18 @@ ifeq ($(strip $(filter-out %x32 linux%,$(target_cpu)
> $(target_os))),)
>    s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
>    s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
>    s-taspri.ads<libgnarl/s-taspri__posix.ads \
> +  $(TRASYM_DWARF_UNIX_PAIRS) \
> +  s-tsmona.adb<libgnat/s-tsmona__linux.adb \
>    $(ATOMICS_TARGET_PAIRS) \
>    $(X86_64_TARGET_PAIRS) \
> +  $(GNATRTL_128BIT_PAIRS) \
>    system.ads<libgnat/system-linux-x86.ads
> 
> The addition of s-tsmona.adb<libgnat/s-tsmona__linux.adb pulls in the
> reference to dladdr, however not setting MISCLIB to -ldl as on other
> architectures
> 
> Proposed patch:
> 
> 
>  PR ada/107475
>  * Makefile.rtl: Set MISCLIB for x86_64-linux-gnux32.
> 
> 
> --- a/gcc/ada/Makefile.rtl
> +++ b/gcc/ada/Makefile.rtl
> @@ -2584,6 +2584,7 @@ ifeq ($(strip $(filter-out %x32 linux%,$(target_cpu)
> $(target_os))),)
>    EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
>    EH_MECHANISM=-gcc
>    THREADSLIB=-lpthread -lrt
> +  MISCLIB = -ldl
>    GNATLIB_SHARED=gnatlib-shared-dual
>    GMEM_LIB = gmemlib
>    LIBRARY_VERSION := $(LIB_VERSION)
> 
> Ok for the trunk and the branches?

Yes, thanks.

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

end of thread, other threads:[~2022-11-07 13:50 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-31 15:33 [ada, patch] fix libgnat build on x86_64-linux-gnux32 with glibc <= 2.31 Matthias Klose
2022-11-07 13:50 ` Arnaud Charlet

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).