Hi Pietro.
Thanks for the patch.

> libga68/ChangeLog:
>
>       * ga68.h (_libga68_abort): Add visibility hidden attribute.
>       (_libga68_init_heap): Likewise.
>       (_libga68_malloc_internal): Likewise.
>       (_libga68_realloc): Likewise.
>       (_libga68_realloc_unchecked): Likewise.
>       (_libga68_free_internal): Likewise.
>       (_libga68_u8_uctomb): Likewise.
>       (_libga68_u8_mbtouc): Likewise.
>       (_libga68_u32_to_u8): Likewise.
>
> Signed-off-by: Pietro Monteiro <[email protected]>
> ---
>  libga68/ga68.h | 29 +++++++++++++++++++----------
>  1 file changed, 19 insertions(+), 10 deletions(-)
>
> diff --git a/libga68/ga68.h b/libga68/ga68.h
> index ed8b71fce79..360c8d1ee84 100644
> --- a/libga68/ga68.h
> +++ b/libga68/ga68.h
> @@ -37,7 +37,8 @@
>  
>  void _libga68_abort (const char *fmt, ...)
>    __attribute__ ((__format__ (__printf__, 1, 2), __nonnull__ (1),
> -               __noreturn__));
> +               __noreturn__,
> +               __visibility__ ("hidden")));

I think we should check whether the target supports the attribute, like
libgfortran does.

In libgfortran/acinclude.m4 there is the macro:

  dnl Check whether the target supports hidden visibility.
  AC_DEFUN([LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY], [
    AC_CACHE_CHECK([whether the target supports hidden visibility],
                 libgfor_cv_have_attribute_visibility, [
    save_CFLAGS="$CFLAGS"
    CFLAGS="$CFLAGS -Werror"
    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[void 
__attribute__((visibility("hidden"))) foo(void) { }]], [])],
                    libgfor_cv_have_attribute_visibility=yes,
                    libgfor_cv_have_attribute_visibility=no)
    CFLAGS="$save_CFLAGS"])
    if test $libgfor_cv_have_attribute_visibility = yes; then
      AC_DEFINE(HAVE_ATTRIBUTE_VISIBILITY, 1,
        [Define to 1 if the target supports __attribute__((visibility(...))).])
    fi])

>  
>  void _libga68_assert (const char *filename, unsigned int lineno);
>  void _libga68_derefnil (const char *filename, unsigned int lineno);
> @@ -61,12 +62,16 @@ void _libga68_bounds_mismatch (const char *filename, 
> unsigned int lineno,
>  
>  /* ga68-alloc.c  */
>  
> -void _libga68_init_heap (void);
> +void _libga68_init_heap (void) __attribute__ ((__visibility__ ("hidden")));
>  void *_libga68_malloc (size_t size);
> -void *_libga68_malloc_internal (size_t size);
> -void *_libga68_realloc (void *ptr, size_t size);
> -void *_libga68_realloc_unchecked (void *ptr, size_t size);
> -void _libga68_free_internal (void *ptr);
> +void *_libga68_malloc_internal (size_t size)
> +  __attribute__ ((__visibility__ ("hidden")));
> +void *_libga68_realloc (void *ptr, size_t size)
> +  __attribute__ ((__visibility__ ("hidden")));
> +void *_libga68_realloc_unchecked (void *ptr, size_t size)
> +  __attribute__ ((__visibility__ ("hidden")));
> +void _libga68_free_internal (void *ptr)
> +  __attribute__ ((__visibility__ ("hidden")));
>  
>  /* ga68-standenv.c  */
>  
> @@ -106,12 +111,16 @@ long long int _libga68_posixlseek (int fd, long long 
> int offset, int whence);
>  
>  int _libga68_u32_cmp2 (const uint32_t *s1, size_t n1, size_t stride1,
>                      const uint32_t *s2, size_t n2, size_t stride2);
> -int _libga68_u8_uctomb (uint8_t *s, uint32_t uc, ptrdiff_t n);
> -int _libga68_u8_mbtouc (uint32_t *puc, const uint8_t *s, size_t n);
> +int _libga68_u8_uctomb (uint8_t *s, uint32_t uc, ptrdiff_t n)
> +  __attribute__ ((__visibility__ ("hidden")));
> +int _libga68_u8_mbtouc (uint32_t *puc, const uint8_t *s, size_t n)
> +  __attribute__ ((__visibility__ ("hidden")));
>  uint8_t *_libga68_u32_to_u8 (const uint32_t *s, size_t n, size_t stride,
> -                          uint8_t *resultbuf, size_t *lengthp);
> +                          uint8_t *resultbuf, size_t *lengthp)
> +  __attribute__ ((__visibility__ ("hidden")));
>  uint32_t *_libga68_u8_to_u32 (const uint8_t *s, size_t n,
> -                           uint32_t *resultbuf, size_t *lengthp);
> +                           uint32_t *resultbuf, size_t *lengthp)
> +  __attribute__ ((__visibility__ ("hidden")));
>  
>  /* libga68.c  */
>  
>
> base-commit: d53956a04837e468534e7ef89b5bee2fbc2cea8c

Reply via email to