[PATCH v3] libsframe: testsuite: Fix testsuite build on Solaris
Indu Bhagat
indu.bhagat@oracle.com
Wed Sep 10 06:33:47 GMT 2025
On 9/9/25 9:36 AM, Rainer Orth wrote:
> 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
>
> #if defined(__EXTENSIONS__) || defined(_XPG4)
> #include <sys/wait.h>
> #endif
>
> 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>
>
> Ok for trunk?
Patch looks good to me. Two comments inlined below.
Thanks for doing this. This being your work/fix, I've reassigned the PR
33168 to you. It will be good to add a "PR libsframe/33168" to the
commit log for marking the fix.
Thanks
Indu
>
> Rainer
>
> --
> ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University
>
>
> sol2-libsframe-testsuite-dg.patch
>
> # HG changeset patch
> # Parent 09bfbccd94ccc0b3e0efcd20831e30014192dafc
> libsframe: testsuite: Fix testsuite build on Solaris [PR33168]
>
> diff --git a/libsframe/Makefile.am b/libsframe/Makefile.am
> --- 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
> --- a/libsframe/Makefile.in
> +++ b/libsframe/Makefile.in
> @@ -201,42 +201,37 @@ am_testsuite_libsframe_decode_be_flippin
> 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.v
> 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
> --- 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
> --- 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
> --- 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
> --- 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
> --- 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
> --- 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
> --- 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
> --- 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
> --- 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
> --- 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
> --- 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
> --- 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
> --- /dev/null
> +++ b/libsframe/testsuite/sframe-test.h
> @@ -0,0 +1,40 @@
> +/* sframe-test.h -- Common libsframe testsuite header.
> +
> + Copyright (C) 2022-2025 Free Software Foundation, Inc.
> +
Typo: 2022-2025 --> 2025
> + 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
> +#include <dejagnu.h>
> +#undef wait
> +
> +#endif /* _SFRAME_TEST_H */
>
Although the -Wall for testsuite was redundant, just wanted to point out
that removing it is not enough to address the current warnings seen:
In file included from
<src-path>/libsframe/testsuite/libsframe.decode/frecnt-1.c:18:
<src-path>/libsframe/testsuite/sframe-test.h:36:14: warning: no previous
prototype for ‘dg_wait’ [-Wmissing-prototypes]
36 | #define wait dg_wait
| ^~~~~~~
Personally, I find the warning distracting in the logs. The buildbot
does seem to track warnings for testsuite too, so it might complain
about the new warnings in the testsuite.
If adding a prototype "void wait (void);" is not preferable, we can add
-Wno-missing-prototypes for the testsuite ?
Thanks
Indu
More information about the Binutils
mailing list