[binutils-gdb] libsframe: testsuite: Fix testsuite build on Solaris [PR33168]

Rainer Orth ro@sourceware.org
Fri Sep 12 07:51:07 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=13793e39831c1aaf8b430e5d6002bd3aebf25fc3

commit 13793e39831c1aaf8b430e5d6002bd3aebf25fc3
Author: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Date:   Fri Sep 12 09:50:34 2025 +0200

    libsframe: testsuite: Fix testsuite build on Solaris [PR33168]
    
    As reported in PR libsframe/33168, the libsframe tests don't build on
    Solaris.  The failure is
    
    In file included from libsframe/testsuite/libsframe.decode/be-flipping.c:28:
    /usr/include/dejagnu.h:48:1: error: conflicting types for ‘wait’; have ‘void(void)’
       48 | wait (void)
          | ^~~~
    In file included from /usr/include/stdlib.h:16,
                     from libsframe/testsuite/libsframe.decode/be-flipping.c:21:
    /usr/include/sys/wait.h:85:14: note: previous declaration of ‘wait’ with type ‘pid_t(int *)’ {aka ‘long int(int *)’}
       85 | extern pid_t wait(int *);
          |              ^~~~
    
    We have a combination of two factors here:
    
    * Solaris <stdlib.h> has
    
      and configure.ac predefines __EXTENSIONS__ due to the use of
      AC_USE_SYSTEM_EXTENSIONS.
    
    * This conflicts with <dejagnu.h>'s definition
    
    void
    wait (void)
    {
    ...
    }
    
    While this version of wait was removed in upstream DejaGnu, the removal
    only happened after the latest release, 1.6.3.
    
    To avoid this, I've moved all testsuite includes into a new
    sframe-test.h, adding a workaround for the wait conflict.
    
    -Wall and -I$(srcdir) have been removed from AM_CPPFLAGS since they
    don't seem to be needed.  To fix the Makefile fragment duplication, the
    local.mk files now use $(testsuite_LDADD) and $(testsuite_CPPFLAGS)
    throughout.
    
    Tested on {i386,amd64}-pc-solaris2.11, {sparc,sparcv9}-sun-solaris2.11,
    {x86_64,i686}-pc-linux-gnu, and amd64-pc-freebsd14.0.
    
    Coauthored-By: Alan Modra <amodra@gmail.com>
    
    2025-08-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
                Alan Modra  <amodra@gmail.com>
    
            libsframe:
            PR libsframe/33168
            * testsuite/sframe-test.h: New file.
            * testsuite/libsframe.decode/be-flipping.c: Replace includes by
            sframe-test.h.
            * testsuite/libsframe.decode/frecnt-1.c: Likewise.
            * testsuite/libsframe.decode/frecnt-2.c: Likewise.
            * testsuite/libsframe.encode/encode-1.c: Likewise.
            * testsuite/libsframe.find/findfre-1.c: Likewise.
            * testsuite/libsframe.find/findfunc-1.c: Likewise.
            * testsuite/libsframe.find/plt-findfre-1.c: Likewise.
            * testsuite/libsframe.find/plt-findfre-2.c: Likewise.
    
            * Makefile.am (AM_CPPFLAGS): Remove -I$(srcdir).
            * Makefile.in: Regenerate.
            * testsuite/local.mk (testsuite_LDADD): New variable.
            (testsuite_CPPFLAGS): Likewise.
            * testsuite/libsframe.decode/local.mk: Use $(testsuite_LDADD),
            $(testsuite_CPPFLAGS).
            * testsuite/libsframe.encode/local.mk: Likewise.
            * testsuite/libsframe.find/local.mk: Likewise.

Diff:
---
 libsframe/Makefile.am                              |  2 +-
 libsframe/Makefile.in                              | 57 ++++++++++------------
 libsframe/testsuite/libsframe.decode/be-flipping.c | 12 +----
 libsframe/testsuite/libsframe.decode/frecnt-1.c    | 12 +----
 libsframe/testsuite/libsframe.decode/frecnt-2.c    | 12 +----
 libsframe/testsuite/libsframe.decode/local.mk      | 12 ++---
 libsframe/testsuite/libsframe.encode/encode-1.c    | 12 +----
 libsframe/testsuite/libsframe.encode/local.mk      |  4 +-
 libsframe/testsuite/libsframe.find/findfre-1.c     | 12 +----
 libsframe/testsuite/libsframe.find/findfunc-1.c    | 12 +----
 libsframe/testsuite/libsframe.find/local.mk        | 16 +++---
 libsframe/testsuite/libsframe.find/plt-findfre-1.c | 12 +----
 libsframe/testsuite/libsframe.find/plt-findfre-2.c | 12 +----
 libsframe/testsuite/local.mk                       |  3 ++
 libsframe/testsuite/sframe-test.h                  | 43 ++++++++++++++++
 15 files changed, 98 insertions(+), 135 deletions(-)

diff --git a/libsframe/Makefile.am b/libsframe/Makefile.am
index 89e471fd3d5..864e4975e8c 100644
--- a/libsframe/Makefile.am
+++ b/libsframe/Makefile.am
@@ -27,7 +27,7 @@ MAINTAINERCLEANFILES =
 
 INCDIR = $(srcdir)/../include
 # include libctf for swap.h
-AM_CPPFLAGS = -I$(srcdir) -I$(srcdir)/../include -I$(srcdir)/../libctf
+AM_CPPFLAGS = -I$(srcdir)/../include -I$(srcdir)/../libctf
 AM_CFLAGS = @ac_libsframe_warn_cflags@
 libsframe_version_info = -version-info `grep -v '^\#' $(srcdir)/libtool-version`
 # libsframe does not restrict the set of exported symbols.  So, if linker does
diff --git a/libsframe/Makefile.in b/libsframe/Makefile.in
index fa705dd9f13..e0f09acedc1 100644
--- a/libsframe/Makefile.in
+++ b/libsframe/Makefile.in
@@ -201,42 +201,37 @@ am_testsuite_libsframe_decode_be_flipping_OBJECTS = testsuite/libsframe.decode/t
 testsuite_libsframe_decode_be_flipping_OBJECTS =  \
 	$(am_testsuite_libsframe_decode_be_flipping_OBJECTS)
 testsuite_libsframe_decode_be_flipping_DEPENDENCIES =  \
-	${top_builddir}/libsframe.la
+	$(testsuite_LDADD)
 am_testsuite_libsframe_decode_frecnt_1_OBJECTS = testsuite/libsframe.decode/testsuite_libsframe_decode_frecnt_1-frecnt-1.$(OBJEXT)
 testsuite_libsframe_decode_frecnt_1_OBJECTS =  \
 	$(am_testsuite_libsframe_decode_frecnt_1_OBJECTS)
-testsuite_libsframe_decode_frecnt_1_DEPENDENCIES =  \
-	${top_builddir}/libsframe.la
+testsuite_libsframe_decode_frecnt_1_DEPENDENCIES = $(testsuite_LDADD)
 am_testsuite_libsframe_decode_frecnt_2_OBJECTS = testsuite/libsframe.decode/testsuite_libsframe_decode_frecnt_2-frecnt-2.$(OBJEXT)
 testsuite_libsframe_decode_frecnt_2_OBJECTS =  \
 	$(am_testsuite_libsframe_decode_frecnt_2_OBJECTS)
-testsuite_libsframe_decode_frecnt_2_DEPENDENCIES =  \
-	${top_builddir}/libsframe.la
+testsuite_libsframe_decode_frecnt_2_DEPENDENCIES = $(testsuite_LDADD)
 am_testsuite_libsframe_encode_encode_1_OBJECTS = testsuite/libsframe.encode/testsuite_libsframe_encode_encode_1-encode-1.$(OBJEXT)
 testsuite_libsframe_encode_encode_1_OBJECTS =  \
 	$(am_testsuite_libsframe_encode_encode_1_OBJECTS)
-testsuite_libsframe_encode_encode_1_DEPENDENCIES =  \
-	${top_builddir}/libsframe.la
+testsuite_libsframe_encode_encode_1_DEPENDENCIES = $(testsuite_LDADD)
 am_testsuite_libsframe_find_findfre_1_OBJECTS = testsuite/libsframe.find/testsuite_libsframe_find_findfre_1-findfre-1.$(OBJEXT)
 testsuite_libsframe_find_findfre_1_OBJECTS =  \
 	$(am_testsuite_libsframe_find_findfre_1_OBJECTS)
-testsuite_libsframe_find_findfre_1_DEPENDENCIES =  \
-	${top_builddir}/libsframe.la
+testsuite_libsframe_find_findfre_1_DEPENDENCIES = $(testsuite_LDADD)
 am_testsuite_libsframe_find_findfunc_1_OBJECTS = testsuite/libsframe.find/testsuite_libsframe_find_findfunc_1-findfunc-1.$(OBJEXT)
 testsuite_libsframe_find_findfunc_1_OBJECTS =  \
 	$(am_testsuite_libsframe_find_findfunc_1_OBJECTS)
-testsuite_libsframe_find_findfunc_1_DEPENDENCIES =  \
-	${top_builddir}/libsframe.la
+testsuite_libsframe_find_findfunc_1_DEPENDENCIES = $(testsuite_LDADD)
 am_testsuite_libsframe_find_plt_findfre_1_OBJECTS = testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_1-plt-findfre-1.$(OBJEXT)
 testsuite_libsframe_find_plt_findfre_1_OBJECTS =  \
 	$(am_testsuite_libsframe_find_plt_findfre_1_OBJECTS)
 testsuite_libsframe_find_plt_findfre_1_DEPENDENCIES =  \
-	${top_builddir}/libsframe.la
+	$(testsuite_LDADD)
 am_testsuite_libsframe_find_plt_findfre_2_OBJECTS = testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_2-plt-findfre-2.$(OBJEXT)
 testsuite_libsframe_find_plt_findfre_2_OBJECTS =  \
 	$(am_testsuite_libsframe_find_plt_findfre_2_OBJECTS)
 testsuite_libsframe_find_plt_findfre_2_DEPENDENCIES =  \
-	${top_builddir}/libsframe.la
+	$(testsuite_LDADD)
 AM_V_P = $(am__v_P_@AM_V@)
 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
 am__v_P_0 = false
@@ -535,7 +530,7 @@ DISTCLEANFILES = $(am__append_2)
 MAINTAINERCLEANFILES = $(am__append_3)
 INCDIR = $(srcdir)/../include
 # include libctf for swap.h
-AM_CPPFLAGS = -I$(srcdir) -I$(srcdir)/../include -I$(srcdir)/../libctf
+AM_CPPFLAGS = -I$(srcdir)/../include -I$(srcdir)/../libctf
 AM_CFLAGS = @ac_libsframe_warn_cflags@
 libsframe_version_info = -version-info `grep -v '^\#' $(srcdir)/libtool-version`
 @HAVE_LD_VERSION_SCRIPT_TRUE@@HAVE_SOLARIS_LD_FALSE@libsframe_version_script = -Wl,--version-script=$(srcdir)/libsframe.ver
@@ -557,30 +552,32 @@ EXTRA_DIST = libtool-version libsframe.ver
 EXPECT = expect
 RUNTEST = runtest
 RUNTESTFLAGS = 
+testsuite_LDADD = $(top_builddir)/libsframe.la
+testsuite_CPPFLAGS = -I$(srcdir)/testsuite -I$(srcdir)/../include
 testsuite_libsframe_decode_be_flipping_SOURCES = testsuite/libsframe.decode/be-flipping.c
-testsuite_libsframe_decode_be_flipping_LDADD = ${top_builddir}/libsframe.la
-testsuite_libsframe_decode_be_flipping_CPPFLAGS = -I${top_srcdir}/../include -Wall
+testsuite_libsframe_decode_be_flipping_LDADD = $(testsuite_LDADD)
+testsuite_libsframe_decode_be_flipping_CPPFLAGS = $(testsuite_CPPFLAGS)
 testsuite_libsframe_decode_frecnt_1_SOURCES = testsuite/libsframe.decode/frecnt-1.c
-testsuite_libsframe_decode_frecnt_1_LDADD = ${top_builddir}/libsframe.la
-testsuite_libsframe_decode_frecnt_1_CPPFLAGS = -I${top_srcdir}/../include -Wall
+testsuite_libsframe_decode_frecnt_1_LDADD = $(testsuite_LDADD)
+testsuite_libsframe_decode_frecnt_1_CPPFLAGS = $(testsuite_CPPFLAGS)
 testsuite_libsframe_decode_frecnt_2_SOURCES = testsuite/libsframe.decode/frecnt-2.c
-testsuite_libsframe_decode_frecnt_2_LDADD = ${top_builddir}/libsframe.la 
-testsuite_libsframe_decode_frecnt_2_CPPFLAGS = -I${top_srcdir}/../include -Wall
+testsuite_libsframe_decode_frecnt_2_LDADD = $(testsuite_LDADD)
+testsuite_libsframe_decode_frecnt_2_CPPFLAGS = $(testsuite_CPPFLAGS)
 testsuite_libsframe_encode_encode_1_SOURCES = testsuite/libsframe.encode/encode-1.c
-testsuite_libsframe_encode_encode_1_LDADD = ${top_builddir}/libsframe.la
-testsuite_libsframe_encode_encode_1_CPPFLAGS = -I${top_srcdir}/../include -Wall
+testsuite_libsframe_encode_encode_1_LDADD = $(testsuite_LDADD)
+testsuite_libsframe_encode_encode_1_CPPFLAGS = $(testsuite_CPPFLAGS)
 testsuite_libsframe_find_findfre_1_SOURCES = testsuite/libsframe.find/findfre-1.c
-testsuite_libsframe_find_findfre_1_LDADD = ${top_builddir}/libsframe.la
-testsuite_libsframe_find_findfre_1_CPPFLAGS = -I${top_srcdir}/../include -Wall
+testsuite_libsframe_find_findfre_1_LDADD = $(testsuite_LDADD)
+testsuite_libsframe_find_findfre_1_CPPFLAGS = $(testsuite_CPPFLAGS)
 testsuite_libsframe_find_findfunc_1_SOURCES = testsuite/libsframe.find/findfunc-1.c
-testsuite_libsframe_find_findfunc_1_LDADD = ${top_builddir}/libsframe.la
-testsuite_libsframe_find_findfunc_1_CPPFLAGS = -I${top_srcdir}/../include -Wall
+testsuite_libsframe_find_findfunc_1_LDADD = $(testsuite_LDADD)
+testsuite_libsframe_find_findfunc_1_CPPFLAGS = $(testsuite_CPPFLAGS)
 testsuite_libsframe_find_plt_findfre_1_SOURCES = testsuite/libsframe.find/plt-findfre-1.c
-testsuite_libsframe_find_plt_findfre_1_LDADD = ${top_builddir}/libsframe.la
-testsuite_libsframe_find_plt_findfre_1_CPPFLAGS = -I${top_srcdir}/../include -Wall
+testsuite_libsframe_find_plt_findfre_1_LDADD = $(testsuite_LDADD)
+testsuite_libsframe_find_plt_findfre_1_CPPFLAGS = $(testsuite_CPPFLAGS)
 testsuite_libsframe_find_plt_findfre_2_SOURCES = testsuite/libsframe.find/plt-findfre-2.c
-testsuite_libsframe_find_plt_findfre_2_LDADD = ${top_builddir}/libsframe.la
-testsuite_libsframe_find_plt_findfre_2_CPPFLAGS = -I${top_srcdir}/../include -Wall
+testsuite_libsframe_find_plt_findfre_2_LDADD = $(testsuite_LDADD)
+testsuite_libsframe_find_plt_findfre_2_CPPFLAGS = $(testsuite_CPPFLAGS)
 all: config.h
 	$(MAKE) $(AM_MAKEFLAGS) all-am
 
diff --git a/libsframe/testsuite/libsframe.decode/be-flipping.c b/libsframe/testsuite/libsframe.decode/be-flipping.c
index 41fa486b62c..c8b627b2067 100644
--- a/libsframe/testsuite/libsframe.decode/be-flipping.c
+++ b/libsframe/testsuite/libsframe.decode/be-flipping.c
@@ -15,17 +15,7 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#include "config.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/stat.h>
-
-#include "sframe-api.h"
-
-/* DejaGnu should not use gnulib's vsnprintf replacement here.  */
-#undef vsnprintf
-#include <dejagnu.h>
+#include "sframe-test.h"
 
 /* SFrame info from the following source (1 fde 5 fres):
    static int cnt;
diff --git a/libsframe/testsuite/libsframe.decode/frecnt-1.c b/libsframe/testsuite/libsframe.decode/frecnt-1.c
index 8d6c27eebcb..9cf55ef0868 100644
--- a/libsframe/testsuite/libsframe.decode/frecnt-1.c
+++ b/libsframe/testsuite/libsframe.decode/frecnt-1.c
@@ -15,17 +15,7 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#include "config.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/stat.h>
-
-#include "sframe-api.h"
-
-/* DejaGnu should not use gnulib's vsnprintf replacement here.  */
-#undef vsnprintf
-#include <dejagnu.h>
+#include "sframe-test.h"
 
 /*
  * SFrame info from the following source (1 fde 4 fres):
diff --git a/libsframe/testsuite/libsframe.decode/frecnt-2.c b/libsframe/testsuite/libsframe.decode/frecnt-2.c
index 74e48bf44e0..9136e9a9e95 100644
--- a/libsframe/testsuite/libsframe.decode/frecnt-2.c
+++ b/libsframe/testsuite/libsframe.decode/frecnt-2.c
@@ -15,17 +15,7 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#include "config.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/stat.h>
-
-#include "sframe-api.h"
-
-/* DejaGnu should not use gnulib's vsnprintf replacement here.  */
-#undef vsnprintf
-#include <dejagnu.h>
+#include "sframe-test.h"
 
 /*
  * SFrame info from the following source (2 fde 8 fres):
diff --git a/libsframe/testsuite/libsframe.decode/local.mk b/libsframe/testsuite/libsframe.decode/local.mk
index 0e4279b8c8e..de34bbcfab8 100644
--- a/libsframe/testsuite/libsframe.decode/local.mk
+++ b/libsframe/testsuite/libsframe.decode/local.mk
@@ -4,13 +4,13 @@ if HAVE_COMPAT_DEJAGNU
 endif
 
 %C%_be_flipping_SOURCES = %D%/be-flipping.c
-%C%_be_flipping_LDADD = ${top_builddir}/libsframe.la
-%C%_be_flipping_CPPFLAGS = -I${top_srcdir}/../include -Wall
+%C%_be_flipping_LDADD = $(testsuite_LDADD)
+%C%_be_flipping_CPPFLAGS = $(testsuite_CPPFLAGS)
 
 %C%_frecnt_1_SOURCES = %D%/frecnt-1.c
-%C%_frecnt_1_LDADD = ${top_builddir}/libsframe.la
-%C%_frecnt_1_CPPFLAGS = -I${top_srcdir}/../include -Wall
+%C%_frecnt_1_LDADD = $(testsuite_LDADD)
+%C%_frecnt_1_CPPFLAGS = $(testsuite_CPPFLAGS)
 
 %C%_frecnt_2_SOURCES = %D%/frecnt-2.c
-%C%_frecnt_2_LDADD = ${top_builddir}/libsframe.la 
-%C%_frecnt_2_CPPFLAGS = -I${top_srcdir}/../include -Wall
+%C%_frecnt_2_LDADD = $(testsuite_LDADD)
+%C%_frecnt_2_CPPFLAGS = $(testsuite_CPPFLAGS)
diff --git a/libsframe/testsuite/libsframe.encode/encode-1.c b/libsframe/testsuite/libsframe.encode/encode-1.c
index 62640c3b70f..da477e5fb2e 100644
--- a/libsframe/testsuite/libsframe.encode/encode-1.c
+++ b/libsframe/testsuite/libsframe.encode/encode-1.c
@@ -15,17 +15,7 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#include "config.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-
-#include "sframe-api.h"
-
-/* DejaGnu should not use gnulib's vsnprintf replacement here.  */
-#undef vsnprintf
-#include <dejagnu.h>
+#include "sframe-test.h"
 
 static int
 add_fde1 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
diff --git a/libsframe/testsuite/libsframe.encode/local.mk b/libsframe/testsuite/libsframe.encode/local.mk
index 477d4b64929..6b09651dc7b 100644
--- a/libsframe/testsuite/libsframe.encode/local.mk
+++ b/libsframe/testsuite/libsframe.encode/local.mk
@@ -3,5 +3,5 @@ if HAVE_COMPAT_DEJAGNU
 endif
 
 %C%_encode_1_SOURCES = %D%/encode-1.c
-%C%_encode_1_LDADD = ${top_builddir}/libsframe.la
-%C%_encode_1_CPPFLAGS = -I${top_srcdir}/../include -Wall
+%C%_encode_1_LDADD = $(testsuite_LDADD)
+%C%_encode_1_CPPFLAGS = $(testsuite_CPPFLAGS)
diff --git a/libsframe/testsuite/libsframe.find/findfre-1.c b/libsframe/testsuite/libsframe.find/findfre-1.c
index 384ad4847a3..cbd7ab30a98 100644
--- a/libsframe/testsuite/libsframe.find/findfre-1.c
+++ b/libsframe/testsuite/libsframe.find/findfre-1.c
@@ -15,17 +15,7 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#include "config.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-
-#include "sframe-api.h"
-
-/* DejaGnu should not use gnulib's vsnprintf replacement here.  */
-#undef vsnprintf
-#include <dejagnu.h>
+#include "sframe-test.h"
 
 static int
 add_fde1 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
diff --git a/libsframe/testsuite/libsframe.find/findfunc-1.c b/libsframe/testsuite/libsframe.find/findfunc-1.c
index 5c4d86710ee..1dcd870b0e5 100644
--- a/libsframe/testsuite/libsframe.find/findfunc-1.c
+++ b/libsframe/testsuite/libsframe.find/findfunc-1.c
@@ -22,17 +22,7 @@
    The tests in here stress the sframe_get_funcdesc_with_addr API via calls to
    the sframe_find_fre ().  */
 
-#include "config.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-
-#include "sframe-api.h"
-
-/* DejaGnu should not use gnulib's vsnprintf replacement here.  */
-#undef vsnprintf
-#include <dejagnu.h>
+#include "sframe-test.h"
 
 static int
 add_fde1 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
diff --git a/libsframe/testsuite/libsframe.find/local.mk b/libsframe/testsuite/libsframe.find/local.mk
index 52741e8063d..05c7a10a8db 100644
--- a/libsframe/testsuite/libsframe.find/local.mk
+++ b/libsframe/testsuite/libsframe.find/local.mk
@@ -4,17 +4,17 @@ if HAVE_COMPAT_DEJAGNU
 endif
 
 %C%_findfre_1_SOURCES = %D%/findfre-1.c
-%C%_findfre_1_LDADD = ${top_builddir}/libsframe.la
-%C%_findfre_1_CPPFLAGS = -I${top_srcdir}/../include -Wall
+%C%_findfre_1_LDADD = $(testsuite_LDADD)
+%C%_findfre_1_CPPFLAGS = $(testsuite_CPPFLAGS)
 
 %C%_findfunc_1_SOURCES = %D%/findfunc-1.c
-%C%_findfunc_1_LDADD = ${top_builddir}/libsframe.la
-%C%_findfunc_1_CPPFLAGS = -I${top_srcdir}/../include -Wall
+%C%_findfunc_1_LDADD = $(testsuite_LDADD)
+%C%_findfunc_1_CPPFLAGS = $(testsuite_CPPFLAGS)
 
 %C%_plt_findfre_1_SOURCES = %D%/plt-findfre-1.c
-%C%_plt_findfre_1_LDADD = ${top_builddir}/libsframe.la
-%C%_plt_findfre_1_CPPFLAGS = -I${top_srcdir}/../include -Wall
+%C%_plt_findfre_1_LDADD = $(testsuite_LDADD)
+%C%_plt_findfre_1_CPPFLAGS = $(testsuite_CPPFLAGS)
 
 %C%_plt_findfre_2_SOURCES = %D%/plt-findfre-2.c
-%C%_plt_findfre_2_LDADD = ${top_builddir}/libsframe.la
-%C%_plt_findfre_2_CPPFLAGS = -I${top_srcdir}/../include -Wall
+%C%_plt_findfre_2_LDADD = $(testsuite_LDADD)
+%C%_plt_findfre_2_CPPFLAGS = $(testsuite_CPPFLAGS)
diff --git a/libsframe/testsuite/libsframe.find/plt-findfre-1.c b/libsframe/testsuite/libsframe.find/plt-findfre-1.c
index 91da4bc1c2e..b41588a4139 100644
--- a/libsframe/testsuite/libsframe.find/plt-findfre-1.c
+++ b/libsframe/testsuite/libsframe.find/plt-findfre-1.c
@@ -15,17 +15,7 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#include "config.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-
-#include "sframe-api.h"
-
-/* DejaGnu should not use gnulib's vsnprintf replacement here.  */
-#undef vsnprintf
-#include <dejagnu.h>
+#include "sframe-test.h"
 
 static int
 add_plt_fde1 (sframe_encoder_ctx *ectx, uint32_t plt_vaddr,
diff --git a/libsframe/testsuite/libsframe.find/plt-findfre-2.c b/libsframe/testsuite/libsframe.find/plt-findfre-2.c
index 00a5b2ab076..61f04f00c2d 100644
--- a/libsframe/testsuite/libsframe.find/plt-findfre-2.c
+++ b/libsframe/testsuite/libsframe.find/plt-findfre-2.c
@@ -16,17 +16,7 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#include "config.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-
-#include "sframe-api.h"
-
-/* DejaGnu should not use gnulib's vsnprintf replacement here.  */
-#undef vsnprintf
-#include <dejagnu.h>
+#include "sframe-test.h"
 
 /* s390x-specific size in bytes of plt0 and pltN.  */
 #define PLT_SIZE 32
diff --git a/libsframe/testsuite/local.mk b/libsframe/testsuite/local.mk
index 5e5ba927f75..4f2ea9b8710 100644
--- a/libsframe/testsuite/local.mk
+++ b/libsframe/testsuite/local.mk
@@ -19,6 +19,9 @@ check-DEJAGNU: site.exp
 	else echo "WARNING: could not find \`runtest'" 1>&2; :;\
 	fi
 
+testsuite_LDADD = $(top_builddir)/libsframe.la
+testsuite_CPPFLAGS = -I$(srcdir)/testsuite -I$(srcdir)/../include
+
 # libsframe encoder/decoder/find testsuite
 include %D%/libsframe.decode/local.mk
 include %D%/libsframe.encode/local.mk
diff --git a/libsframe/testsuite/sframe-test.h b/libsframe/testsuite/sframe-test.h
new file mode 100644
index 00000000000..d5db96bd081
--- /dev/null
+++ b/libsframe/testsuite/sframe-test.h
@@ -0,0 +1,43 @@
+/* sframe-test.h -- Common libsframe testsuite header.
+
+   Copyright (C) 2022-2025 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _SFRAME_TEST_H
+#define _SFRAME_TEST_H
+
+#include "config.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+
+#include "sframe-api.h"
+
+/* DejaGnu should not use gnulib's vsnprintf replacement here.  */
+#undef vsnprintf
+
+/* PR 33168: Solaris <sys/wait.h> with __EXTENSIONS__ defined gets a
+   declaration of wait().  This conflicts with <dejagnu.h>'s wait
+   definition that is only removed after DejaGnu 1.6.3.  */
+
+#define wait dg_wait
+/* Add prototype to avoid warning.  */
+void wait (void);
+#include <dejagnu.h>
+#undef wait
+
+#endif /* _SFRAME_TEST_H */


More information about the Binutils-cvs mailing list