¿Cómo consigo los programas de C ++ para enlazar con la función de protector de pila de gcc en AIX?
Pregunta
Soy un poco de un novato AIX. Estoy intentando compilar un programa usando la función de protector de pila de gcc. He instalado gcc en el servidor utilizando el paquete GCC de pware y puedo compilar un programa de ejemplo como:
#include <stdio.h>
int main(int argc,char **argv)
{
printf("hello world\n");
return 0;
}
Cuando enciendo pila protector sin embargo, me sale: g ++ -fstack-protector-all main.cpp collect2: biblioteca no libssp_nonshared encontró
He estado buscando en Google para una solución a este y parece que mi libc tiene que haber un poco de materia incorporada en esa mina no lo hace. ¿Hay un paquete por ahí que incluye una libc con la orden interna de protección de pila?
g ++ -v retornos
Using built-in specs.
Target: powerpc-ibm-aix5.3.0.0
Configured with: ../stage/gcc-4.2.4/configure --disable-shared --enable-threads=posix --prefix=/opt/pware --with-long-double-128 --with-mpfr=/opt/pware --with-gmp=/opt/pware
Thread model: aix
gcc version 4.2.4
No puedo encontrar libssp_nonshared.a en el sistema - no es un paquete adicional que necesito para instalar o debería haber venido con el paquete gcc
Solución
Esto no tiene nada que ver con libc
: su instalación GCC
falta biblioteca libssp_nonshared.a
.
¿Qué dice su "gcc --version"
? Puede que haya sido configurado con la opción --disable-libssp
(en cuyo caso no se puede utilizar la instrumentación de protección de pila).
Actualización:
Yo miraba en gcc-4.3.0/configure
:
powerpc-*-aix*)
noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp ${libgcj}"
;;
Soy alrededor del 99% de que esto significa que libssp (y por lo tanto -fstack-protector
) no está disponible para su plataforma. Lo sentimos: - (