Re: [Flex-help] flex-2.5.37 testsuite clean up on Solaris
flex is a tool for generating scanners
Brought to you by:
wlestes
|
From: Dennis C. <dc...@bl...> - 2012-10-25 03:49:18
|
> For the record, the shell script autogen.sh in the top level of the flex
> source distribution is what I use to rebuild flex from the ground up.
> It
> likely has options that you will want to use yourself.
Looks like just autoreconf --verbose --install and that seems to work great .. however I have fallen into the fourth level of dependecy hell as my new Makefile.am files work great and there are now only two failures in the pile .. however I now also get this crud :
$ gmake check
gmake check-recursive
gmake[1]: Entering directory `/usr/local/build/flex-2.5.37_SunOS5.10_sparcv9-pass1'
Making check in lib
gmake[2]: Entering directory `/usr/local/build/flex-2.5.37_SunOS5.10_sparcv9-pass1/lib'
gmake[2]: Nothing to be done for `check'.
gmake[2]: Leaving directory `/usr/local/build/flex-2.5.37_SunOS5.10_sparcv9-pass1/lib'
Making check in .
gmake[2]: Entering directory `/usr/local/build/flex-2.5.37_SunOS5.10_sparcv9-pass1'
gmake[2]: Leaving directory `/usr/local/build/flex-2.5.37_SunOS5.10_sparcv9-pass1'
Making check in doc
gmake[2]: Entering directory `/usr/local/build/flex-2.5.37_SunOS5.10_sparcv9-pass1/doc'
restore=: && backupdir=".am$$" && \
am__cwd=`pwd` && CDPATH="${ZSH_VERSION+.}:" && cd . && \
rm -rf $backupdir && mkdir $backupdir && \
if (/bin/bash /usr/local/build/flex-2.5.37_SunOS5.10_sparcv9-pass1/missing --run makeinfo --version) >/dev/null 2>&1; then \
for f in flex.info flex.info-[0-9] flex.info-[0-9][0-9] flex.i[0-9] flex.i[0-9][0-9]; do \
if test -f $f; then mv $f $backupdir; restore=mv; else :; fi; \
done; \
else :; fi && \
cd "$am__cwd"; \
if /bin/bash /usr/local/build/flex-2.5.37_SunOS5.10_sparcv9-pass1/missing --run makeinfo -I . \
-o flex.info flex.texi; \
then \
rc=0; \
CDPATH="${ZSH_VERSION+.}:" && cd .; \
else \
rc=$?; \
CDPATH="${ZSH_VERSION+.}:" && cd . && \
$restore $backupdir/* `echo "./flex.info" | sed 's|[^/]*$||'`; \
fi; \
rm -rf $backupdir; exit $rc
/usr/local/build/flex-2.5.37_SunOS5.10_sparcv9-pass1/missing: line 52: makeinfo: command not found
WARNING: `makeinfo' is missing on your system. You should only need it if
you modified a `.texi' or `.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy `make' (AIX,
DU, IRIX). You might want to install the `Texinfo' package or
the `GNU make' package. Grab either from any GNU archive site.
TEXINPUTS=".:$TEXINPUTS" \
MAKEINFO='/bin/bash /usr/local/build/flex-2.5.37_SunOS5.10_sparcv9-pass1/missing --run makeinfo -I .' \
texi2dvi --pdf --batch --clean flex.texi
/bin/bash: texi2dvi: command not found
gmake[2]: *** [flex.pdf] Error 127
gmake[2]: Leaving directory `/usr/local/build/flex-2.5.37_SunOS5.10_sparcv9-pass1/doc'
gmake[1]: *** [check-recursive] Error 1
gmake[1]: Leaving directory `/usr/local/build/flex-2.5.37_SunOS5.10_sparcv9-pass1'
gmake: *** [check] Error 2
$
So I go looking for makeinfo and then end up building a full TeX install from TeXlive just to get past this. Also ... i had to get texinfo-4.13a and also looking for texi2dvi :
$ gmake check
gmake check-recursive
gmake[1]: Entering directory `/usr/local/build/flex-2.5.37_SunOS5.10_sparcv9-pass1'
Making check in lib
gmake[2]: Entering directory `/usr/local/build/flex-2.5.37_SunOS5.10_sparcv9-pass1/lib'
gmake[2]: Nothing to be done for `check'.
gmake[2]: Leaving directory `/usr/local/build/flex-2.5.37_SunOS5.10_sparcv9-pass1/lib'
Making check in .
gmake[2]: Entering directory `/usr/local/build/flex-2.5.37_SunOS5.10_sparcv9-pass1'
gmake[2]: Leaving directory `/usr/local/build/flex-2.5.37_SunOS5.10_sparcv9-pass1'
Making check in doc
gmake[2]: Entering directory `/usr/local/build/flex-2.5.37_SunOS5.10_sparcv9-pass1/doc'
TEXINPUTS=".:$TEXINPUTS" \
MAKEINFO='/bin/bash /usr/local/build/flex-2.5.37_SunOS5.10_sparcv9-pass1/missing --run makeinfo -I .' \
texi2dvi --pdf --batch --clean flex.texi
You don't have a working TeX binary (tex) installed anywhere in
your PATH, and texi2dvi cannot proceed without one. If you want to use
this script, you'll need to install TeX (if you don't have it) or change
your PATH or TEX environment variable (if you do). See the --help
output for more details.
For information about obtaining TeX, please see http://www.tug.org. If
you happen to be using Debian, you can get it with this command:
apt-get install tetex-bin
gmake[2]: *** [flex.pdf] Error 1
gmake[2]: Leaving directory `/usr/local/build/flex-2.5.37_SunOS5.10_sparcv9-pass1/doc'
gmake[1]: *** [check-recursive] Error 1
gmake[1]: Leaving directory `/usr/local/build/flex-2.5.37_SunOS5.10_sparcv9-pass1'
gmake: *** [check] Error 2
$
seriously ?
So i have a pile of modified Makefile.am files that I feel like handing over to you as I have done this test now on RHEL6 with these mods and all works great except for a code problem in two of the tests.
see attached flex-2.5.37_tests_Makefile.am-modified.star.bz2 ( POSIX tar file )
On RHEL6 I see these results :
echo Results: ; \
echo Tests succeeded: `echo -n "$NOK"|wc -c`; \
echo Tests FAILED: `echo -n "$NFAIL"|wc -c` ; \
test "$NFAIL" = ""
Executing test test-concatenated-options
Test test-concatenated-options succeeded.
Executing test test-c++-yywrap
Test test-c++-yywrap succeeded.
Executing test test-extended
Test test-extended succeeded.
Executing test test-ccl
Test test-ccl succeeded.
Executing test test-quotes
Test test-quotes succeeded.
Executing test test-rescan-r
Test test-rescan-r succeeded.
Executing test test-rescan-nr
Test test-rescan-nr succeeded.
Executing test test-basic-nr
Test test-basic-nr succeeded.
Executing test test-basic-r
Test test-basic-r succeeded.
Executing test test-bison-yylloc
Test test-bison-yylloc FAILED. See test-bison-yylloc/OUTPUT for details.
Executing test test-bison-yylval
Test test-bison-yylval FAILED. See test-bison-yylval/OUTPUT for details.
Executing test test-bison-nr
Test test-bison-nr succeeded.
Executing test test-multiple-scanners-nr
Test test-multiple-scanners-nr succeeded.
Executing test test-multiple-scanners-r
Test test-multiple-scanners-r succeeded.
Executing test test-header-nr
Test test-header-nr succeeded.
Executing test test-header-r
Test test-header-r succeeded.
Executing test test-reject
Test test-reject succeeded.
Executing test test-c++-multiple-scanners
Test test-c++-multiple-scanners succeeded.
Executing test test-c++-basic
Test test-c++-basic succeeded.
Executing test test-posixly-correct
Test test-posixly-correct succeeded.
Executing test test-posix
Test test-posix succeeded.
Executing test test-mem-r
Test test-mem-r succeeded.
Executing test test-mem-nr
Test test-mem-nr succeeded.
Executing test test-debug-nr
Test test-debug-nr succeeded.
Executing test test-debug-r
Test test-debug-r succeeded.
Executing test test-lineno-r
Test test-lineno-r succeeded.
Executing test test-lineno-nr
Test test-lineno-nr succeeded.
Executing test test-linedir-r
Test test-linedir-r succeeded.
Executing test test-array-nr
Test test-array-nr succeeded.
Executing test test-array-r
Test test-array-r succeeded.
Executing test test-c-cpp-nr
Test test-c-cpp-nr succeeded.
Executing test test-c-cpp-r
Test test-c-cpp-r succeeded.
Executing test test-include-by-buffer
Test test-include-by-buffer succeeded.
Executing test test-include-by-push
Test test-include-by-push succeeded.
Executing test test-include-by-reentrant
Test test-include-by-reentrant succeeded.
Executing test test-prefix-nr
Test test-prefix-nr succeeded.
Executing test test-prefix-r
Test test-prefix-r succeeded.
Executing test test-pthread
Test test-pthread succeeded.
Executing test test-string-nr
Test test-string-nr succeeded.
Executing test test-string-r
Test test-string-r succeeded.
Executing test test-yyextra
Test test-yyextra succeeded.
Executing test test-alloc-extra
Test test-alloc-extra succeeded.
Executing test test-noansi-nr
Test test-noansi-nr succeeded.
Executing test test-noansi-r
Test test-noansi-r succeeded.
Executing test test-top
Test test-top succeeded.
Executing test test-table-opts
Test test-table-opts succeeded.
Results:
Tests succeeded: 44
Tests FAILED: 2
gmake[4]: *** [check-local] Error 1
gmake[4]: Leaving directory `/usr/local/build/flex-2.5.37-pass2/tests'
gmake[3]: *** [check-am] Error 2
gmake[3]: Leaving directory `/usr/local/build/flex-2.5.37-pass2/tests'
gmake[2]: *** [check-recursive] Error 1
gmake[2]: Leaving directory `/usr/local/build/flex-2.5.37-pass2/tests'
gmake[1]: *** [check-recursive] Error 1
gmake[1]: Leaving directory `/usr/local/build/flex-2.5.37-pass2'
gmake: *** [check] Error 2
sedna.adbs.ca $ pwd
/usr/local/build/flex-2.5.37-pass2
what failed ?
sedna.adbs.ca $ cat tests/test-bison-yylloc/OUTPUT
gmake[5]: Entering directory `/usr/local/build/flex-2.5.37-pass2/tests/test-bison-yylloc'
../../flex scanner.l
/usr/local/bin/bison --defines --output=parser.c --name-prefix="test" parser.y
gcc -c -o scanner.o -I. -I../.. -I../.. -I. -I/usr/local/include -mtune=opteron -march=opteron -m64 -g -malign-double -m128bit-long-double -mpc80 -fexceptions -fpic -fvisibility=default -Wl,-rpath=/usr/local/lib -Wl,-q -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 scanner.c
gcc -c -o parser.o -I. -I../.. -I../.. -I. -I/usr/local/include -mtune=opteron -march=opteron -m64 -g -malign-double -m128bit-long-double -mpc80 -fexceptions -fpic -fvisibility=default -Wl,-rpath=/usr/local/lib -Wl,-q -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 parser.c
parser.c: In function 'testparse':
parser.c:1566: warning: passing argument 1 of 'testerror' discards qualifiers from pointer target type
parser.y:38: note: expected 'char *' but argument is of type 'const char *'
gcc -c -o main.o -I. -I../.. -I../.. -I. -I/usr/local/include -mtune=opteron -march=opteron -m64 -g -malign-double -m128bit-long-double -mpc80 -fexceptions -fpic -fvisibility=default -Wl,-rpath=/usr/local/lib -Wl,-q -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 main.c
main.c:27: error: conflicting types for 'testparse'
parser.h:98: note: previous declaration of 'testparse' was here
gmake[5]: *** [main.o] Error 1
gmake[5]: Leaving directory `/usr/local/build/flex-2.5.37-pass2/tests/test-bison-yylloc'
sedna.adbs.ca $
sedna.adbs.ca $
sedna.adbs.ca $ cat tests/test-bison-yylval/OUTPUT
gmake[5]: Entering directory `/usr/local/build/flex-2.5.37-pass2/tests/test-bison-yylval'
/usr/local/bin/bison --defines --output=parser.c --name-prefix="test" parser.y
gcc -c -o parser.o -I. -I../.. -I../.. -I. -I/usr/local/include -mtune=opteron -march=opteron -m64 -g -malign-double -m128bit-long-double -mpc80 -fexceptions -fpic -fvisibility=default -Wl,-rpath=/usr/local/lib -Wl,-q -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 parser.c
parser.c: In function 'testparse':
parser.c:1514: warning: passing argument 1 of 'testerror' discards qualifiers from pointer target type
parser.y:38: note: expected 'char *' but argument is of type 'const char *'
../../flex scanner.l
gcc -c -o scanner.o -I. -I../.. -I../.. -I. -I/usr/local/include -mtune=opteron -march=opteron -m64 -g -malign-double -m128bit-long-double -mpc80 -fexceptions -fpic -fvisibility=default -Wl,-rpath=/usr/local/lib -Wl,-q -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 scanner.c
gcc -c -o main.o -I. -I../.. -I../.. -I. -I/usr/local/include -mtune=opteron -march=opteron -m64 -g -malign-double -m128bit-long-double -mpc80 -fexceptions -fpic -fvisibility=default -Wl,-rpath=/usr/local/lib -Wl,-q -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 main.c
main.c:27: error: conflicting types for 'testparse'
parser.h:85: note: previous declaration of 'testparse' was here
gmake[5]: *** [main.o] Error 1
gmake[5]: Leaving directory `/usr/local/build/flex-2.5.37-pass2/tests/test-bison-yylval'
sedna.adbs.ca $
sedna.adbs.ca $
On Solaris I fall into dependency hell. gee ... what a surprise :-\
Dennis
|