Historias
Slashboxes
Comentarios
 
Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • Re:Genial

    (Puntos:0)
    por pobrecito hablador el Martes, 20 Octubre de 2009, 06:58h (#1180391)

    El código en ese caso acaba junto con el resto del código, típicamente en la sección de código ejecutable.

    Madre mía... Léelo todo en lugar de la parte que mejor te viene. Te estoy hablando de la parte en la que compilas. Transformas un .c en un .o y dentro de ese .o (lo que se llama compilar). Luego, según el tipo de enlazado que elijas (estático o dinámico), juntará el código en una única sección de código resolviendo esas tablas de símbolos que tanto te gustan a ti, o dejará las tablas no resueltas y lo separará en dos secciones de código: la del ejecutable y la de la biblioteca. Y luego, en la fase del enlazado dinámico, completará la tarea que tú no completaste tras compilar. Sin más.

    ¿Sabes? A veces la mejor forma de salir de un hoyo no es seguir cavando :-)

    Eso mismo te digo yo. Mi campo profesional son los compiladores. Me dedico a ello, sé muy bien cómo funcionan y por eso he saltado, porque no podía aguantar ver cómo se soltaban barbaridades, medias verdades y cómo se retorcía el proceso de compilación separando cosas que no están separando, u otorgando un papel especial a una parte del proceso según el momento en el que se haga.

    Pero nada, tú sigue con lo tuyo. Te lo digo: no sabes cómo funciona un compilador. Es un hecho.

    [ Padre ]
  • Re:Genial

    (Puntos:0)
    por pobrecito hablador el Martes, 20 Octubre de 2009, 11:06h (#1180425)

    Madre mía... Léelo todo en lugar de la parte que mejor te viene.
    Sí, debe ser eso :-P

    El proceso de enlazado al que haces referencia consiste en la generación de un índice (varios realmente: en Windows son las tablas LDT y GDT, en Linux/ELF la GOT y PLT, etc.) con las direcciones de cada punto de entrada de la biblioteca que fue referenciado en tu programa.

    Ocurre lo mismo cuando compilas con código que no está en una biblioteca, sino en un fichero objeto normal y corriente, separado del tuyo. Solo que luego esos índices se resuelven en el enlazado final, en lugar de dejarse al enlazador dinámico.
    ... Lo cual es una salida por la tangente pero como seguro que sabes mucho debe ser un despiste por tu parte :-P

    Como dije hace dos comentarios [barrapunto.com]: enlaza con una biblioteca estática y consulta los índices ¿Donde está todo ese código? ¿Está dentro o fuera del programa? ¿Los símbolos están donde estarían los de una biblioteca dinámica? ¿Están dentro o fuera de tu programa?

    Porque es, repito por enésima vez, de lo que va todo esto. Si no contiene partes del original, modificadas o no, entonces no puede considerarse obra derivada, y esto es así en todos los países de la Convención de Berna. Sigues necesitando, claro está, permisos del titular para distribuir la biblioteca junto a tu programa pero la GPL no tiene ninguna objeción a ello siempre que cumplas las condiciones de redistribución... Las de la biblioteca, claro, que es lo único que está licenciado como GPL.

    No hay más ni menos que eso y si lo quieres discutir, matizar o rebatir te sugiero que lo hagas desde el punto de vista legal porque ya veo que por el técnico tus argumentos son muy "amplios" y eruditos, y yo ya no me dedico a la docencia.

    [ Padre ]