The rpmlint tool for checking the rpms against a set of rules found that the hpixml binary is built with the executable stack flag set, because it contains a hand-written assembly code.
"rpmlint -I executable-stack" returns
The binary declares the stack as executable. Executable stack is usually an
error as it is only needed if the code contains GCC trampolines or similar
constructs which uses code on the stack. One common source for needlessly
executable stack cases are object files built from assembler files which don't
define a proper .note.GNU-stack section.
Well, I wrote that assembly file only to include XML schema into the binary.
There is no instructions or stack in the assembly file.
The executable flag is set automagically by gcc/as as I saw some discussions on the web.
http://sourceware.org/ml/binutils/2003-05/msg00741.html has some info from time when the (non-)executable stack was introduces. Seems that adding
.section .note.GNU-stack, ""
to the schema.S file will fix it.
set non-executable stack flag for schema.S
see the new attached file for better fix
Looks good.
Are you going to commit it into svn trunk?
I don't think I can commit it, please do it.
I only added conditionals as advised there:
http://www.gentoo.org/proj/en/hardened/gnu-stack.xml
http://openhpi.svn.sourceforge.net/viewvc/openhpi/openhpi/trunk/clients/hpixml/schema.S?revision=7397&view=markup
Fixed in trunk (rev. #7397)
Good for you?
perfect :-)