Windows MSVC debug symbols, gnustep-tests extension, and typo fixes (#30)

* Conditionally add PDB Debug Info on Windows MSVC

* Add make debug and no-silent options

* Update gnustep-tests help prompt
This commit is contained in:
Hugo Melder 2023-01-09 23:30:22 +01:00 committed by GitHub
parent f0e00360a2
commit 5ee21206a8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 32 additions and 15 deletions

View file

@ -49,6 +49,9 @@ export GSTESTDIR
GSTESTMODE=normal
GSMAKEOPTIONS="debug=yes"
GSVERBOSECFLAG=
# Argument checking
while test $# != 0
do
@ -60,6 +63,12 @@ do
--debug)
GSTESTDBG="$GSTESTDIR/gdb.cmds"
;;
--make-debug)
GSMAKEOPTIONS+=" --debug"
;;
--make-no-silent)
GSMAKEOPTIONS+=" --no-silent"
;;
--developer)
GSTESTDEV=yes
;;
@ -82,6 +91,8 @@ do
;;
--verbose)
GSVERBOSE=yes
GSMAKEOPTIONS+=" messages=yes"
GSVERBOSECFLAG="-v"
;;
--failfast)
GSTESTMODE=failfast
@ -95,7 +106,9 @@ do
echo "Use 'gnustep-tests --documentation' for full details."
echo "Use 'gnustep-tests --clean' to remove old logs and leftover files."
echo "Use 'gnustep-tests --failfast' to stop after the first failure."
echo "Use 'gnustep-tests --debug' to run gdb for any failed tests."
echo "Use 'gnustep-tests --debug' to run gdb/lldb for any failed tests."
echo "Use 'gnustep-tests --make-debug' to enable make debug output."
echo "Use 'gnustep-tests --make-no-silent' to disable silent make output."
echo "Use 'gnustep-tests --developer' to treat hopes as real tests."
echo "Use 'gnustep-tests --verbose' for full/detailed log output."
echo "Use 'gnustep-tests --sequential' to disable parallel building."
@ -350,23 +363,19 @@ build_test ()
tmp=`basename $TESTFILE .c`
if test x"$tmp" = x"$TESTFILE"
then
BUILD_CMD="$CXX -o ./obj/$TESTNAME $TESTFILE $ADDITIONAL_CXXFLAGS $ADDITIONAL_LDFLAGS"
BUILD_CMD="$CXX -o $GSVERBOSECFLAG ./obj/$TESTNAME $TESTFILE $ADDITIONAL_CXXFLAGS $ADDITIONAL_LDFLAGS"
else
BUILD_CMD="$CC -o ./obj/$TESTNAME $TESTFILE $ADDITIONAL_CFLAGS $ADDITIONAL_LDFLAGS"
BUILD_CMD="$CC -o $GSVERBOSECFLAG ./obj/$TESTNAME $TESTFILE $ADDITIONAL_CFLAGS $ADDITIONAL_LDFLAGS"
fi
else
BUILD_CMD="$OBJCXX -o ./obj/$TESTNAME $TESTFILE $GSTESTFLAGS $GSTESTLIBS"
BUILD_CMD="$OBJCXX -o $GSVERBOSECFLAG ./obj/$TESTNAME $TESTFILE $GSTESTFLAGS $GSTESTLIBS"
fi
else
BUILD_CMD="$CC -o ./obj/$TESTNAME $TESTFILE $GSTESTFLAGS $GSTESTLIBS"
BUILD_CMD="$CC -o $GSVERBOSECFLAG ./obj/$TESTNAME $TESTFILE $GSTESTFLAGS $GSTESTLIBS"
fi
else
if test x"$GSVERBOSE" = xyes
then
BUILD_CMD="$MAKE_CMD messages=yes debug=yes $TESTNAME"
else
BUILD_CMD="$MAKE_CMD debug=yes $TESTNAME"
fi
echo $GSMAKEOPTIONS
BUILD_CMD="$MAKE_CMD $GSMAKEOPTIONS $TESTNAME"
fi
# Redirect errors to stdout so it shows up in the log,
@ -716,9 +725,9 @@ ${tmp}_OBJC_FILES=$TESTFILE"
echo "Building in $dir" >>$GSTESTLOG
if test -r ./make-check.env
then
( . ./make-check.env; . ./TestInfo > /dev/null 2>&1; $MAKE_CMD -j 4 debug=yes) >>$GSTESTLOG 2>&1
( . ./make-check.env; . ./TestInfo > /dev/null 2>&1; $MAKE_CMD -j 4 $GSMAKEOPTIONS) >>$GSTESTLOG 2>&1
else
( . ./TestInfo > /dev/null 2>&1; $MAKE_CMD -j 4 debug=yes) >>$GSTESTLOG 2>&1
( . ./TestInfo > /dev/null 2>&1; $MAKE_CMD -j 4 $GSMAKEOPTIONS) >>$GSTESTLOG 2>&1
fi
build_state=$?
fi

View file

@ -11,7 +11,7 @@ AC_DEFUN([GS_CHECK_ABI20_LINKER], [dnl
AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([AC_PROG_GREP])
AC_CACHE_CHECK([for an gnustep-2.0 ABI compatible linker],[gs_cv_abi20_linker], [dnl
gs_cv_abi20_linker="unkown"
gs_cv_abi20_linker="unknown"
AS_VAR_PUSHDEF([LD], [gs_cv_abi20_linker_prog])
LD=$($CC --print-prog-name=ld)
if $LD --version | $GREP -q 'GNU ld'; then
@ -30,4 +30,4 @@ AC_DEFUN([GS_CHECK_ABI20_LINKER], [dnl
AC_MSG_WARN([The detected linker might not produce working Objective-C binaries using the gnustep-2.0 ABI. Consider using gold or LLD.])
fi
AS_VAR_IF([_gs_abi20_linker], ["yes"], [$1], [$2])
])
])

View file

@ -46,6 +46,14 @@ endif
INTERNAL_CFLAGS = -pthread
INTERNAL_OBJCFLAGS = -pthread
INTERNAL_LDFLAGS =
ifeq ($(debug), yes)
# Embed PDB Debug Info on Windows MSVC
ifeq ($(findstring windows, $(GNUSTEP_TARGET_OS)), windows)
INTERNAL_LDFLAGS += -Wl,-debug
endif
endif
ifneq ($(findstring android, $(GNUSTEP_TARGET_OS)), android)
ifneq ($(GNUSTEP_TARGET_OS), windows)
INTERNAL_LDFLAGS = -pthread