[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#919996: gnat ftbfs on kfreebsd



> s-osinte.ads:445:07: warning: formal parameter "attr" is not referenced

Hello.

Why does a simple warning lets the build fail?

A quick search seems to show that pthread_mutex_* functions are now
available on freeBSD.

If so, replacing debian/patches/ada-kfreebsd.diff with the attached
version may fix the issue.

Else, it is sufficient to remove the short implementation in the
specification ("is (0)" in s-osint-freebsd.ads) with normal
implementations in the body declaring that the formal parameters are
not used:
   function Pthread_Mutex_Foo (Bla : in Int) is
      pragma Unreferenced (Bla);
   begin
      return 0;
   end Pthread_Mutex_Foo;
in s-osint-freebsd.adb. Ada requires no specific place in the body,
but gnat often sorts the implementations by alphabetical order.
Description: add support for GNU/kFreeBSD and GNU/Hurd.
 For now, it seems that BSD requires -lrt.
 It will be ignored on other platforms thanks to --as-needed.
Author: Ludovic Brenta <lbrenta@debian.org>
Author: Nicolas Boulenguez <nicolas@debian.org>

--- a/src/gcc/ada/libgnarl/s-osinte__kfreebsd-gnu.ads
+++ b/src/gcc/ada/libgnarl/s-osinte__kfreebsd-gnu.ads
@@ -45,6 +45,7 @@ package System.OS_Interface is
    pragma Preelaborate;
 
    pragma Linker_Options ("-lpthread");
+   pragma Linker_Options ("-lrt");
 
    subtype int            is Interfaces.C.int;
    subtype char           is Interfaces.C.char;
--- a/src/gcc/ada/gsocket.h
+++ b/src/gcc/ada/gsocket.h
@@ -253,6 +253,7 @@
 #endif
 
 #if defined (__FreeBSD__) || defined (__vxworks) || defined(__rtems__) \
+ || defined (__FreeBSD_kernel__) || defined(__GNU__) \
  || defined (__DragonFly__) || defined (__NetBSD__) || defined (__OpenBSD__)
 # define Has_Sockaddr_Len 1
 #else
--- a/src/gcc/ada/s-oscons-tmplt.c
+++ b/src/gcc/ada/s-oscons-tmplt.c
@@ -1705,6 +1705,7 @@ CND(CLOCK_THREAD_CPUTIME_ID, "Thread CPU
 
 #if defined(__linux__) || defined(__FreeBSD__) \
  || (defined(_AIX) && defined(_AIXVERSION_530)) \
+ || defined(__FreeBSD_kernel__) \
  || defined(__DragonFly__) || defined(__QNX__)
 /** On these platforms use system provided monotonic clock instead of
  ** the default CLOCK_REALTIME. We then need to set up cond var attributes

Reply to: