dpkg-buildflags: en línea en la nube

Este es el comando dpkg-buildflags que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.

PROGRAMA:

NOMBRE


dpkg-buildflags: devuelve los indicadores de compilación para usar durante la compilación del paquete

SINOPSIS


dpkg-buildflags [opción...] [comando]

DESCRIPCIÓN


dpkg-buildflags es una herramienta para recuperar indicadores de compilación para usar durante la compilación de Debian
paquetes. Las banderas predeterminadas las define el proveedor, pero pueden ampliarse / anularse
de varias maneras:

1. todo el sistema con /etc/dpkg/buildflags.conf;

2. para el usuario actual con $ XDG_CONFIG_HOME / dpkg / buildflags.conf donde
$ XDG_CONFIG_HOME por defecto es $ INICIO / .config;

3. temporalmente por el usuario con variables de entorno (ver sección MEDIO AMBIENTE);

4. dinámicamente por el mantenedor del paquete con variables de entorno establecidas a través de
debian / reglas (mira la sección MEDIO AMBIENTE).

Los archivos de configuración pueden contener dos tipos de directivas:

SET bandera propuesta de
Anular la bandera nombrada bandera tener el valor propuesta de.

STRIP bandera propuesta de
Desnuda de la bandera nombrada bandera todas las banderas de compilación enumeradas en propuesta de.

ADJUNTAR bandera propuesta de
Extiende la bandera nombrada bandera agregando las opciones dadas en propuesta de. Un espacio es
antepuesto al valor agregado si el valor actual de la bandera no está vacío.

PREPENDER bandera propuesta de
Extiende la bandera nombrada bandera anteponiendo las opciones dadas en propuesta de. Un espacio es
añadido al valor antepuesto si el valor actual de la bandera no está vacío.

Los archivos de configuración pueden contener comentarios en líneas que comienzan con un hash (#). Vacío
las líneas también se ignoran.

COMANDOS


--vertedero Imprima en salida estándar todos los indicadores de compilación y sus valores. Imprime una bandera
por línea separada de su valor por un signo igual ("bandera=propuesta de”). Este es el
acción por defecto.

--lista Imprima la lista de banderas admitidas por el proveedor actual (una por línea). Ver el
SOPORTADO BANDERAS sección para obtener más información sobre ellos.

--estado
Muestre cualquier información que pueda ser útil para explicar el comportamiento de
dpkg-buildflags (desde dpkg 1.16.5): variables de entorno relevantes, actual
proveedor, estado de todos los indicadores de funciones. También imprima las banderas del compilador resultantes con
su origen.

Esto está destinado a ejecutarse desde debian / reglas, para que el registro de compilación mantenga un claro
rastro de las banderas de compilación utilizadas. Esto puede resultar útil para diagnosticar problemas relacionados con
de ellas.

--export =formato
Imprima en comandos de salida estándar que se pueden usar para exportar toda la compilación
banderas para alguna herramienta en particular. Si el formato no se da valor, sh se supone.
Solo se incluyen los indicadores de compilación que comienzan con un carácter en mayúscula, otros
se supone que no son adecuados para el medio ambiente. Formatos admitidos:

sh Comandos de shell para configurar y exportar todas las marcas de compilación en el
medio ambiente. Los valores de las banderas se citan para que la salida esté lista para
evaluación por un caparazón.

cmdline
Argumentos para pasar a la línea de comandos de un programa de compilación para usar todos los
banderas de compilación (desde dpkg 1.17.0). Los valores de la bandera se citan en shell
sintaxis.

configurar
Este es un alias heredado para cmdline.

para lograr Cree directivas para establecer y exportar todos los indicadores de compilación en el
medio ambiente. La salida se puede escribir en un fragmento de archivo MAKE y evaluar
utilizando un incluir Directiva.

--obtener bandera
Imprime el valor de la bandera en salida estándar. Sale con 0 si se conoce la bandera
de lo contrario, sale con 1.

--origen bandera
Imprime el origen del valor devuelto por --obtener. Sale con 0 si la bandera
se conoce, de lo contrario, sale con 1. El origen puede ser uno de los siguientes valores:

vendedor se devuelve la bandera original establecida por el proveedor;

te la bandera se establece / modifica mediante una configuración de todo el sistema;

usuario la bandera se establece / modifica mediante una configuración específica del usuario;

env la bandera se establece / modifica mediante una configuración específica del entorno.

--características de consulta cafe
Imprima las funciones habilitadas para un área determinada (desde dpkg 1.16.2). El único
Las áreas actualmente reconocidas en Debian y derivados son qa, reproducible, Desinfectar
y endurecimiento, Ver el DESTAQUE PRÁCTICO sección para más detalles. Sale con 0 si el
se conoce el área de lo contrario sale con 1.

La salida está en formato RFC822, con una sección por función. Por ejemplo:

Característica: pastel
Habilitado: no

Característica: stackprotector
Habilitado: sí

--ayuda Muestre el mensaje de uso y salga.

--versión
Muestre la versión y salga.

SOPORTADO BANDERAS


FLANDERAS Opciones para el compilador de C. El valor predeterminado establecido por el proveedor incluye -g y del
nivel de optimización predeterminado (-O2 por lo general, o -O0 si el DEB_BUILD_OPCIONES
la variable de entorno define nooptar).

CPPFLAGS
Opciones para el preprocesador C. Valor predeterminado: vacío.

CXXBANDERAS
Opciones para el compilador de C ++. Igual que FLANDERAS.

OBJCFLAGS
Opciones para el compilador de Objective C. Igual que FLANDERAS.

OBJCXXBANDERAS
Opciones para el compilador Objective C ++. Igual que CXXBANDERAS.

GCJBANDERAS
Opciones para el compilador GNU Java (gcj). Un subconjunto de FLANDERAS.

BANDERAS Opciones para el compilador de Fortran 77. Un subconjunto de FLANDERAS.

FCBANDERAS
Opciones para el compilador Fortran 9x. Igual que BANDERAS.

LDFBANDERAS
Opciones pasadas al compilador al vincular ejecutables u objetos compartidos (si el
se llama directamente al enlazador, luego -Wl y , tienen que ser despojados de estas opciones).
Valor predeterminado: vacío.

Es posible que se añadan nuevos indicadores en el futuro si surge la necesidad (por ejemplo, para admitir otros
idiomas).

DESTAQUE PRÁCTICO


Cada función de área se puede habilitar y deshabilitar en el DEB_BUILD_OPCIONES y
DEB_BUILD_MAINT_OPTIONS el valor del área de la variable de entorno con el '+'Y'-'modificador.
Por ejemplo, para habilitar el endurecimiento Función "pastel" y deshabilite la función "fortificar" que
puede hacer esto en debian / reglas:

exportar DEB_BUILD_MAINT_OPTIONS = endurecimiento = + pastel, -fortificar

La característica especial todo el (válido en cualquier área) se puede usar para habilitar o deshabilitar todas las áreas
características al mismo tiempo. Desactivando así todo en el endurecimiento área y habilitación
solo "formatear" y "fortificar" se pueden lograr con:

exportar DEB_BUILD_MAINT_OPTIONS = endurecimiento = -todos, + formato, + fortificar

qa
Se pueden usar varias opciones de tiempo de compilación (detalladas a continuación) para ayudar a detectar problemas en el
código fuente o sistema de compilación.

error Esta configuración (deshabilitada de forma predeterminada) agrega cualquier opción de advertencia que detecte de manera confiable
código fuente problemático. Las advertencias son fatales.

canario Esta configuración (deshabilitada de forma predeterminada) agrega opciones falsas de canary a las banderas de compilación, por lo que
que los registros de compilación se pueden verificar para saber cómo se propagan las banderas de compilación y para permitir
encontrar alguna omisión de la configuración normal de la bandera de compilación. El único actualmente compatible
las banderas son CPPFLAGS, FLANDERAS, OBJCFLAGS, CXXBANDERAS y OBJCXXBANDERAS con banderas puestas a
-D__DEB_CANARIO_bandera_ID aleatorio__y LDFBANDERAS establecido en -Wl, -z, deb-canary-ID aleatorio.

Desinfectar
Se pueden usar varias opciones de tiempo de compilación (detalladas a continuación) para ayudar a desinfectar un resultado
binario contra la corrupción de la memoria, fugas de memoria, uso después de libre, carreras de datos de subprocesos y
Errores de comportamiento indefinidos.

dirección
Esta configuración (deshabilitada de forma predeterminada) agrega -fsanitize = dirección a LDFBANDERAS y
-fsanitize = dirección -fno-omitir-puntero-marco a FLANDERAS y CXXBANDERAS.

o fresa de hueso denso Esta configuración (deshabilitada de forma predeterminada) agrega -fsanitize = hilo a FLANDERAS, CXXBANDERAS y
LDFBANDERAS.

fuga Esta configuración (deshabilitada de forma predeterminada) agrega -fsanitize = fuga a LDFBANDERAS. Se pone
automáticamente desactivado si el dirección o de o fresa de hueso denso las funciones están habilitadas, como
lo implican.

indefinido
Esta configuración (deshabilitada de forma predeterminada) agrega -fsanitize = indefinido a FLANDERAS, CXXBANDERAS
y LDFBANDERAS.

endurecimiento
Se pueden usar varias opciones de tiempo de compilación (detalladas a continuación) para ayudar a fortalecer un resultado
binario contra ataques de corrupción de memoria, o proporcionar mensajes de advertencia adicionales durante
Compilacion. Excepto como se indica a continuación, estos están habilitados de forma predeterminada para arquitecturas que
apoyalos.

formato Esta configuración (habilitada de forma predeterminada) agrega -Formato -Werror = formato-seguridad a FLANDERAS,
CXXBANDERAS, OBJCFLAGS y OBJCXXBANDERAS. Esto advertirá sobre una cadena de formato incorrecto
utiliza, y fallará cuando las funciones de formato se utilicen de una manera que represente posibles
problemas de seguridad. En la actualidad, esto advierte sobre llamadas a Printf y scanf funciones
donde la cadena de formato no es una cadena literal y no hay argumentos de formato,
como en printf (foo); en lugar de printf ("% s", foo); Esto puede ser un agujero de seguridad si el
La cadena de formato proviene de una entrada que no es de confianza y contiene '% n'.

fortalecer
Esta configuración (habilitada de forma predeterminada) agrega -D_FORTIFY_SOURCE = 2 a CPPFLAGS. Durante el código
generación, el compilador conoce una gran cantidad de información sobre los tamaños de búfer (donde
posible), e intenta reemplazar llamadas inseguras a funciones de búfer de longitud ilimitada
con los de longitud limitada. Esto es especialmente útil para código antiguo y descuidado.
Además, las cadenas de formato en la memoria grabable que contienen '% n' están bloqueadas. Si
una aplicación depende de dicha cadena de formato, deberá solucionarse.

Tenga en cuenta que para que esta opción tenga algún efecto, la fuente también debe estar compilada con
-O1 o mas alto. Si la variable de entorno DEB_BUILD_OPCIONES contiene nooptar, entonces
fortalecer El soporte se desactivará debido a nuevas advertencias emitidas por glibc 2.16.
y después.

protector de pila
Esta configuración (habilitada de forma predeterminada si stackprotectorstrong no está en uso) agrega
-fstack-protector --param = ssp-buffer-size = 4 a FLANDERAS, CXXBANDERAS, OBJCFLAGS,
OBJCXXBANDERAS, GCJBANDERAS, BANDERAS y FCBANDERAS. Esto agrega controles de seguridad contra la pila
sobrescribe. Esto hace que muchos ataques potenciales de inyección de código se cancelen
situaciones. En el mejor de los casos, esto convierte las vulnerabilidades de inyección de código en negación.
de servicio o sin problemas (según la aplicación).

Esta función requiere vinculación contra glibc (u otro proveedor de
__stack_chk_fail), por lo que debe desactivarse al construir con -nostdlib or
independiente o similar.

protector de pila fuerte
Esta configuración (habilitada de forma predeterminada) agrega -fstack-protector-fuerte a FLANDERAS,
CXXBANDERAS, OBJCFLAGS, OBJCXXBANDERAS, GCJBANDERAS, BANDERAS y FCBANDERAS. Esta es una mas fuerte
variante de protector de pila, pero sin penalizaciones de rendimiento significativas.

Inhabilitando protector de pila también desactivará esta configuración.

Esta característica tiene los mismos requisitos que protector de pila, y además también
requiere gcc 4.9 y posterior.

relro Esta configuración (habilitada de forma predeterminada) agrega -Wl, -z, relro a LDFBANDERAS. Durante el programa
carga, el enlazador debe escribir varias secciones de memoria ELF. Esta banderas
el cargador para convertir estas secciones en solo lectura antes de pasar el control al
programa. En particular, esto evita los ataques de sobrescritura GOT. Si esta opcion es
discapacitado, atar ahora también se desactivará.

atar ahora
Esta configuración (deshabilitada de forma predeterminada) agrega -Wl, -z, ahora a LDFBANDERAS. Durante la carga del programa,
Todos los símbolos dinámicos se resuelven, lo que permite que todo el PLT se marque como leído.
solo (debido a relro encima). La opción no puede habilitarse si relro no es
habilitado

pastel Esta configuración (deshabilitada de forma predeterminada) agrega -fPIE a FLANDERAS, CXXBANDERAS, OBJCFLAGS,
OBJCXXBANDERAS, GCJBANDERAS, BANDERAS y FCBANDERASy -fPIE -tarta a LDFBANDERAS. Posición
Se necesitan ejecutables independientes para aprovechar el diseño del espacio de direcciones
Aleatorización, compatible con algunas versiones del kernel. Si bien ASLR ya puede ser
aplicado para áreas de datos en la pila y el montón (brk y mmap), las áreas de código deben
compilarse como independiente de la posición. Las bibliotecas compartidas ya hacen esto (-fPIC), entonces
obtienen ASLR automáticamente, pero las regiones .text binarias deben construirse PIE para ganar
ASLR. Cuando esto sucede, los ataques ROP (Programación orientada al retorno) son mucho más difíciles
ya que no hay ubicaciones estáticas para rebotar durante una corrupción de memoria
ataque.

Esto no es compatible con -fPIC por lo que se debe tener cuidado al construir compartido
objetos.

Además, dado que PIE se implementa a través de un registro general, algunas arquitecturas
(más notablemente i386) puede ver pérdidas de rendimiento de hasta un 15% en muy segmentos de texto
cargas de trabajo de aplicaciones pesadas; la mayoría de las cargas de trabajo ven menos del 1%. Arquitecturas con
los registros más generales (por ejemplo, amd64) no consideran una penalización en el peor de los casos tan alta.

reproducible
Las opciones de tiempo de compilación que se detallan a continuación se pueden utilizar para ayudar a mejorar la reproducibilidad de la compilación.
o proporcionar mensajes de advertencia adicionales durante la compilación. Excepto como se indica a continuación, estos
están habilitados de forma predeterminada para las arquitecturas que los admiten.

eterno
Esta configuración (habilitada de forma predeterminada) agrega -Wfecha-hora a CPPFLAGS. Esto causará
advertencias cuando el __TIEMPO__, __FECHA__ y __MARCA DE TIEMPO__ se utilizan macros.

MEDIO AMBIENTE


Hay 2 conjuntos de variables de entorno que realizan las mismas operaciones, el primero
(DEBUTANTE_bandera_op) nunca debe usarse dentro de debian / reglas. Está destinado a cualquier usuario que desee
para reconstruir el paquete fuente con diferentes marcas de compilación. El segundo set
(DEBUTANTE_bandera_MANTENIMIENTO_op) solo debe usarse en debian / reglas por mantenedores de paquetes para cambiar
las banderas de construcción resultantes.

DEBUTANTE_bandera_COLOCAR
DEBUTANTE_bandera_MAINT_SET
Esta variable se puede utilizar para forzar el valor devuelto para el bandera.

DEBUTANTE_bandera_BANDA
DEBUTANTE_bandera_MAINT_STRIP
Esta variable se puede utilizar para proporcionar una lista de opciones separadas por espacios que se
quitado del conjunto de banderas devueltas para el dado bandera.

DEBUTANTE_bandera_ADJUNTAR
DEBUTANTE_bandera_MAINT_APPEND
Esta variable se puede utilizar para agregar opciones complementarias al valor devuelto para
lo dado bandera.

DEBUTANTE_bandera_PREPENDER
DEBUTANTE_bandera_MAINT_PREPEND
Esta variable se puede utilizar para anteponer opciones complementarias al valor devuelto
por lo dado bandera.

DEB_BUILD_OPCIONES
DEB_BUILD_MAINT_OPTIONS
Estas variables pueden ser utilizadas por un usuario o mantenedor para deshabilitar / habilitar varias áreas
características que afectan a las marcas de compilación. los DEB_BUILD_MAINT_OPTIONS anulaciones variables
cualquier escenario en el DEB_BUILD_OPCIONES áreas de características. Ver el DESTAQUE PRÁCTICO .
para obtener más detalles.

Use dpkg-buildflags en línea usando los servicios de onworks.net



Últimos programas en línea de Linux y Windows