Re: [ada, patch] fix libgnat build on x86_64-linux-gnux32 with glibc <= 2.31

2022-11-07 Thread Arnaud Charlet via 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.adbs-tpopsp.adbs-taspri.ads +  $(TRASYM_DWARF_UNIX_PAIRS) \
> +  s-tsmona.adb$(ATOMICS_TARGET_PAIRS) \
>$(X86_64_TARGET_PAIRS) \
> +  $(GNATRTL_128BIT_PAIRS) \
>system.ads 
> The addition of s-tsmona.adb 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.


[ada, patch] fix libgnat build on x86_64-linux-gnux32 with glibc <= 2.31

2022-10-31 Thread Matthias Klose
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.adbThe addition of s-tsmona.adbto 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