Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#4 beecrypt CVS (20060511) --noexecstack check

open
nobody
None
5
2006-05-11
2006-05-11
Tim Mooney
No

I'm testing beecrypt from CVS to see how the x86_64
assembler is working on Solaris 10 now, and I turned up
another issue I had forgotten to report with 4.1.2.

The configure test for -Wa,--noexecstack doesn't work
with the Solaris Studio 11 compiler (and probably other
compilers) because anything with `-Wa' is just passed
on (by the compiler driver) to the assembler, and the
the assembler is never invoked during the test compile.

This means that configure things that -Wa,--noexecstack
is ok, when in reality the assembler chokes on it:

cc -DHAVE_CONFIG_H -I. -I. -I. -I./.. -I/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-I/usr/j2se/jre/../include
-I/usr/j2se/jre/../include/solaris -DOPTIMIZE_I386 -Xa
-xO2 -xstrconst -KPIC -mt -xtarget=native -xarch=amd64a
-I/local/include -mt -Wa,--noexecstack -c aesopt.s
-KPIC -DPIC -o .libs/aesopt.o
Assembler:
"", line 1 : Illegal flag (-)
cc: assembler failed for aesopt.s
gmake[2]: *** [aesopt.lo] Error 1
gmake[2]: Leaving directory
`/local/src/RPM/BUILD/beecrypt-20060511'

If I remove the -Wa,--noexecstack from CFLAGS and
CXXFLAGS, the compile proceeds past that file.

For the configure test to reliably determine whether
the assembler can grok that argument or some other
variant, you would have to actually use an assembly
test program, but then you're at the point of having to
figure out what the architecture is so you can select
the right assembly source file.

Not sure what the right fix is, but if you have any
ideas I would be more than willing to test.

Discussion