#!/bin/bash # Wrapper for $(LIBTOOL) that performs PaX marking on the dumper binary # generated by g-ir-scanner. # PaX marking code stolen from pax-utils.eclass flags=${1//-}; shift echo ${LIBTOOL} "$@" ${LIBTOOL} "$@" retval=$? files=$(find . -path "*tmp-introspect*/.libs/*") if type -p paxctl > /dev/null; then echo "PT PaX marking -${flags} ${files}" for f in ${files}; do # First, try modifying the existing PAX_FLAGS header paxctl -q${flags} "${f}" && continue # Second, try stealing the (unused under PaX) PT_GNU_STACK header paxctl -qc${flags} "${f}" && continue # Third, try pulling the base down a page, to create space and # insert a PT_GNU_STACK header (works on ET_EXEC) paxctl -qC${flags} "${f}" && continue done elif type -p scanelf > /dev/null; then # Try scanelf, the Gentoo swiss-army knife ELF utility # Currently this sets PT if it can, no option to control what it does. echo "Fallback PaX marking -${flags} ${files}" scanelf -Xxz ${flags} ${files} fi exit ${retval}