Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Mismo source, distinto binario

Iniciado por Mars Attacks, 13 de Noviembre de 2007, 02:43:35 PM

« anterior - próximo »

Mars Attacks

Estoy utilizando el Visual Studio 2005. Al compilar los mismos fuentes en momentos distintos, los binarios resultantes difieren en su checksum. Buscando por los internetes parece que el problema es que se le añade el timestamp al release.

¿Alguien sabe cómo puedo deshabilitar esto (o si es por otra causa, lo que sea)? Me gustaría obtener un resultado determinista de mis compilaciones y tal ^_^

Muchas gracias, zagales.

ethernet

Cita de: "Mars Attacks"Estoy utilizando el Visual Studio 2005. Al compilar los mismos fuentes en momentos distintos, los binarios resultantes difieren en su checksum. Buscando por los internetes parece que el problema es que se le añade el timestamp al release.

¿Alguien sabe cómo puedo deshabilitar esto (o si es por otra causa, lo que sea)? Me gustaría obtener un resultado determinista de mis compilaciones y tal ^_^


No subas tus binarios a subversion! ;P. Yo te aconsejo que los resultados de tus compilaciones no sean deterministas por el checksum del exe. Lo habitual es tener un exe por cada checkin en el respositorio (no has visto los build number de muchas aplicaciones?) y lógicamente tener ese proceso automatizado con un servidor de integración. Trac tiene uno llamado bitten, muy chulo :)

Mars Attacks

Directo a donde duele, sí señor :D

Gracias. Aunque sólo por curiosidad, me encantaría saber por qué no se puede deshabilitar el tema (si es que no se puede).

Mars Attacks

No quiero resultar pesado, pero ¿nadie sabe si se puede conseguir deshabilitar loquequieraqueseaquehacequelosbinariosesandistintosaunquecompilesdelamismafuente?

Mars Attacks

XD Me he autoencontrado buscando en google por el problema.

Estoy viendo que tocará comparar archivos a pelo ignorando los bytes de checksum y time stamp.

¿De verdad de verdad es imposible crear dos binarios idénticos a partir de los mismos fuentes con el Visual Studio?

Tei

Cita de: "Mars Attacks"XD Me he autoencontrado buscando en google por el problema.

Estoy viendo que tocará comparar archivos a pelo ignorando los bytes de checksum y time stamp.

¿De verdad de verdad es imposible crear dos binarios idénticos a partir de los mismos fuentes con el Visual Studio?

Se me ocurre que compiles dos veces el mismo exe. Y hagas un patch binario con la diferencia.
Entonces en tu proceso de make, haces que aplique ese patch al final de cada build

Si no funciona, no funciona, pero si funciona, me debes una birra.
Y si deja de funcionar un dia, pues te debo yo dos birras.

He tenido que contestar porque me da mucha rabia que alguien diga que algo en informática es imposible.

Mars Attacks

Hombre, es una solución, pero para soluciones "guarras", la de comparar todo menos esos bytes es menos intrusiva. Necesitaré hacer la operación con varios binarios, y no me sale a cuenta hacer dos compilaciones por cada uno y hacerles un patch (aparte de que puede que el archivo sí hubiera cambiado, y le jodiera el checksum o algo).

A mí lo que me da rabia es que si no es posible hacerlo directamente por el programa, la única razón es porque no han dejado la posibilidad de deshabilitar el time stamp.

De todas formas, la birra te la pago igual ;)

Tei

Cita de: "Mars Attacks"Necesitaré hacer la operación con varios binarios, y no me sale a cuenta hacer dos compilaciones por cada uno y hacerles un patch (aparte de que puede que el archivo sí hubiera cambiado, y le jodiera el checksum o algo).

No digo dos compilaciones cada vez. Una vez creado el parche binario, tratar de utilizarlo con cualquier cosa que compiles. Y no se si funcionaria. Puede funcionar. Evidentemente es un hack que podria dejar de funcionar en cualquier momento, y ni siquiera estarias seguro de como lo esta haciendo.
Pero en el caso de que dejara de funcionar despues de un tiempo usandolo, habrias ganado dos birras. Parece una situación win-win de esas.
Pero entiendo que no te convenza :D

davidgf

No se si lo has leido:

http://support.microsoft.com/default.aspx?scid=kb;en-us;164151

Si MS tiene una herramienta que vuelca la parte invariable de las releases tu puedes hacer lo mismo. I calculas el checksum a partir del convenido "invariable" del exe.

Saludos!
Tàrraco: una aventura por la Tarragona romana (http://tarraco.davidgf.net)

Mars Attacks

Gracias, Davidgf, fue de lo primero que encontré sobre el tema. Me quedé buscando de dónde sacar el dumpbin y ahí lo dejé, buscando la forma "limpia" (decirle a Visual Studio que NO me añada al ejecutable información variante).

De todas formas, es un estupendo plan B, si esta vez encuentro el dumpbin. Muchas gracias :D Otra birra para ti.

Al final habrá que instaurar las birras como moneda de intercambio de stratos...






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.