combined s3/s4 build - initial build working

tridge at samba.org tridge at samba.org
Mon Feb 21 15:11:47 MST 2011


Hi Metze,

 > > I think the two are related. We need to use the wafsamba symbol
 > > validation tests to find all the places where we end up with duplicate
 > > symbols.
 > 
 > Can you explain how that works?

There are several mechanisms. The one I'm referring to here uses nm on
all object files, libraries and system libraries to build up a
dictionary of symbols and where they are defined. It can then do lots
of checks to ensure that the build doesn't have anything broken. For
example, it will tell you if you have defined a symbol which is also
in a system library.

See buildtools/wafsamba/symbols.py for the code. It isn't enabled by
default yet as it is far too verbose in its warnings and has lots
of false positives.

If you want to try it, you can do:

 make SYMBOLCHECK=1

I originally wrote it to try to ensure we have sane dependencies. For
example, it tries to work out if we have specified a dependency that
we don't in fact need. It also works out missing dependencies
(ie. where we are getting a dependency indirectly where we actually
depend on it directly).

For example:

  Target 'smbclient' should add syslib dep 'readline' for symbols history_list
  Target 'SMB_PROTOCOL' should add dep 'tevent' for symbols tevent_req_set_callback _tevent_req_callback_data

for the s3/s4 merge work I will be adding some new checks that
specifically look for the problems we are likely to have. I think the
main thing is to look for symbols that are defined twice in two
different subsystems.

Cheers, Tridge


More information about the samba-technical mailing list