chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-users] re: binaries are not byte identical


From: Brandon J. Van Every
Subject: [Chicken-users] re: binaries are not byte identical
Date: Wed, 06 Sep 2006 12:41:30 -0700
User-agent: Thunderbird 1.5.0.5 (Windows/20060719)

John Cowan wrote:
address@hidden scripsit:

  
BTW: Are the 2 resulting chicken binaries byte-identical?
(Sorry, if this question is naive - I should have followed
the discussion more closely :-( )
    

No, they're not identical.  I got interested in why, and found
there are some discrepancies between the chicken-config.h and
chicken-defaults.h files generated by the two build processes.

1) In the autotools version of chicken-defaults.h, C_INSTALL_CFLAGS
contains the additional options "-Os -fomit-frame-pointer -fno-strict-aliasing -Wall -Wno-unused -Wno-uninitialized".
  

It is true that I have not implemented GCC specific flags in CMake.  This is pretty easy to do.

2) In the autotools version of chicken-defaults.h, C_INSTALL_MORE_LIBS
and C_INSTALL_MORE_STATIC_LIBS contain the additional switch "-ldl"
before anything else.
  

I have a vague memory of -ldl appearing twice under Autoconf.  I'll look at this.

A quick look at the chicken-config.h diffs doesn't show anything that
looks significant:  I'm attaching the diff here in case Brandon or
Felix wants to run an eye or two over it.
  

Under Autoconf, chicken-config.h is generated entirely by Autoconf.  Under CMake, chicken-config.h is created from the chicken-config-cmake.h.in template.  Adding HAVE_SOMETHING works differently under CMake; #if 0 | #if 10 was an easy way to implement the substitutions, rather than Autoconf's more elaborate system of commenting out things that aren't needed.  Although, if I cared, I could use the same comment substitution trick that Makefile.am --> Makefile.in generation uses.  Anyways, the two files have the same name and fulfill the same functional requirements, but they are generated in completely different manners.  CMake doesn't put anything extra in its version, only the variables that actually cause the build to change in some way.  Autoconf is notorious for including everything and the kitchen sink.


Cheers,
Brandon Van Every


reply via email to

[Prev in Thread] Current Thread [Next in Thread]