1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00
Commit Graph

642 Commits

Author SHA1 Message Date
Rusty Russell
3ccfe7cb7b Add -fno-common where supported (WAF only)
Normally under UNIX, uninitialized non-static global variables get
placed in the "common" section, where they are merged at link time.
This means if two C files define "int debug", they will end up
referring to the same variable.  Or if one does "float level" and the
other does "int level" you'll get an accidental union.

Such bugs can be hard to track down; fortunately GCC offers
-fno-common to disable this feature.  It didn't reveal any places
which need fixing, however).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2011-05-10 11:37:30 +09:30
Andrew Tridgell
7e4ba48135 build: allow s3 libraries to be built with no undefined symbols
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-05-08 10:59:18 +02:00
Matthieu Patou
3a88d49d12 waf: introduce reverse logic for allowing unknown symbols
Some os (ie OSX 10.6) forbids by default unknown symbols so in order to
allow them (for special case) we have no to remove linker option *but*
to add options to ask the linker to be more relax.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2011-04-26 17:16:34 +10:00
Andrew Tridgell
380bd493bb build: use readelf as a replacement for ldd
using readelf allows us to do a non-recursive library listing, which
is important to remove false positive symbol duplication

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Wed Apr 13 04:37:33 CEST 2011 on sn-devel-104
2011-04-13 04:37:33 +02:00
Andrew Tridgell
601835ee6d build: speed up SYMBOLCHECK code
this uses a nm and ldd cache to speed up the duplicate symbol checking
code

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-04-13 11:47:36 +10:00
Andrew Tridgell
59b588a16c waf: a better way to detect duplicated symbols
this detects when we have the same symbol linked in twice in any
binary by using ldd and nm on the binary and its associated libraries.

Some of these duplicates are caused by a subsystem being linked twice,
and some are caused by two versions of the same function name being
linked into a binary

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Wed Apr  6 06:44:14 CEST 2011 on sn-devel-104
2011-04-06 06:44:14 +02:00
Michael Adam
af82dcae30 s3:waf:compare_config_h3.sh: make diff tool configurable as env var "DIFF" 2011-04-02 02:41:19 +02:00
Michael Adam
e06dba1589 s3:waf:compare_config_h3.sh: specify autoconf-config.h as commandline parameter 2011-04-02 02:41:18 +02:00
Andrew Tridgell
282984fdff waf: prevent an error in the symbol checking code 2011-03-23 12:19:29 +11:00
Günther Deschner
a252ded937 wafsamba: add -Wcast-qual only to the toplevel (s4) build.
In samba3 there are a lot of warnings generated that make it a bit hard to track
and monitor other build warnings.

Guenther

Autobuild-User: Günther Deschner <gd@samba.org>
Autobuild-Date: Sat Mar 19 00:58:25 CET 2011 on sn-devel-104
2011-03-19 00:58:25 +01:00
Andrew Tridgell
1404a9fe72 waf: ensure that MAKEFLAGS is set before parsing it 2011-03-15 13:56:46 +11:00
Andrew Tridgell
500c854f79 build: added simple header handling for our libraries
we don't need header munging for tdb/talloc etc
2011-03-15 13:09:30 +11:00
Andrew Tridgell
4907695012 build: removed mkdir of public headers directory
not needed now that we have public_headers_allow_broken
2011-03-15 12:22:20 +11:00
Andrew Tridgell
fd328f8f81 build: added public_headers_allow_broken option
the s3 waf build will use this to say that we should allow public
headers that contain references to non-public headers. In the s4 build
that is not allowed, but the s3 build does not yet have clean public
headers
2011-03-15 12:22:20 +11:00
Andrew Tridgell
023296423a waf: auto-create include paths if needed 2011-03-15 12:22:20 +11:00
Andrew Tridgell
20ec0b6629 waf: make mkdir_p() a bit more robust 2011-03-15 12:22:20 +11:00
Andrew Tridgell
b4d618cc6f waf: build headers in separate 'headers' build group 2011-03-15 12:22:20 +11:00
Andrew Tridgell
f8655f4621 waf: always generate public headers in the build tree
this allows us to properly test our public headers before install
2011-03-15 12:22:19 +11:00
Andrew Tridgell
6c6ab50a40 waf: build substituted public headers in build tree
the bin/default/include/public directory will contain headers that are
ready to install
2011-03-15 12:22:19 +11:00
Andrew Tridgell
f2bcb7028e waf: moved header file handling into its own module
It is getting quite complex now, and shouldn't just be mixed in with
everything else
2011-03-15 12:22:19 +11:00
Andrew Tridgell
03aebc2df8 wafsamba: keep a list of public headers
this will be used to construct test_headers.h, for testing our public
headers
2011-03-15 12:22:18 +11:00
Andrew Tridgell
1c0e539cbb wafsamba: don't follow symlinks outside the build tree
when computing stale files, don't follow symlinks that are not within
the build tree
2011-03-15 12:22:18 +11:00
Andrew Tridgell
59be7265ad wafsamba: added global_include option
this allows you to disable the global include additions. We will use
this for testing our public headers without including any of the
source tree directories
2011-03-15 12:22:18 +11:00
Andrew Tridgell
4f52becec1 build: install public headers in the build tree
this symlinks our public headers into the build tree, which will allow
us to refer to the public headers by their public name inside the
source tree.
2011-03-15 12:22:18 +11:00
Jelmer Vernooij
a051b40075 samba_abi: Also sort ABI files properly so symbols end up in the right version.
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Sat Mar 12 02:45:20 CET 2011 on sn-devel-104
2011-03-12 02:45:20 +01:00
Jelmer Vernooij
1d1e5cbd27 Sort by release component integer values rather than using standard string
sort.

This makes sure tevent 0.9.9 is considered to be older than 0.9.10 and 0.9.11
2011-03-12 01:09:31 +01:00
Andrew Tridgell
8870fcb154 build: fixed the ELF name for private libraries
thanks to Simo and rpmbuild for spotting this!

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Wed Mar  2 02:49:34 CET 2011 on sn-devel-104
2011-03-02 02:49:34 +01:00
Jelmer Vernooij
0bd390e706 samba_abi: Generate vscript entries even for ABI versions that didn't introduce
any new symbols.

The version entries also appear in the symbol table and removing them 
(we always add an entry for the current version) breaks the ABI.
2011-02-28 21:11:21 +01:00
Andrew Tridgell
4f48a28c3c build: fixed 'make dist' without configuring
this finds git inside samba_version.py

thanks to Simo for noticing this problem

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Wed Feb 23 07:55:28 CET 2011 on sn-devel-104
2011-02-23 07:55:28 +01:00
Andrew Tridgell
0a6e0edc04 build: don't display expected duplicate symbols 2011-02-23 17:10:14 +11:00
Andrew Tridgell
5f6790bc74 build: duplicate symbols between system libraries aren't interesting
we expect dups in libpthread, libc and libattr

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Wed Feb 23 01:29:38 CET 2011 on sn-devel-104
2011-02-23 01:29:38 +01:00
Andrew Tridgell
c43eb39098 build: added WHYNEEDED=TARGET:DEPENDENCY
you can now do:

  make WHYNEEDED=smbd/smbd:gensec

and it will print:

 Checking why smbd/smbd needs to link to gensec
 target 'smbd/smbd' uses symbols set(['open_schannel_session_store']) from 'gensec'

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Tue Feb 22 03:35:58 CET 2011 on sn-devel-104
2011-02-22 03:35:58 +01:00
Andrew Tridgell
0e0ea4efe3 build: enhanced the symbolcheck code
we can now work out why a binary needs a library, and we can find all
the duplicate symbols (we currently have 1087 symbols defined in more
than one place in Samba).
2011-02-22 02:51:10 +01:00
Andrew Tridgell
949427c208 python: use os.environ[] instead of os.putenv()
using os.putenv() causes too much confusion, as it doesn't update
os.getenv()

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-02-22 02:51:10 +01:00
Andrew Tridgell
a94f7768d9 build: we don't need the special case for s3build any more
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-02-22 02:51:10 +01:00
Jelmer Vernooij
fd880fda0d s4-version: Fix version finding for bzr branches.
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Sun Feb 20 17:35:45 CET 2011 on sn-devel-104
2011-02-20 17:35:45 +01:00
Günther Deschner
a2f4a17b5e s3-waf: fix popt support.
Guenther
2011-02-18 15:34:27 +01:00
Andrew Tridgell
e92922308b build: put links for libs in the right directory
when a library is declared as libdir/libname, still put the symlink in
bin/shared

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Fri Feb 18 06:03:57 CET 2011 on sn-devel-104
2011-02-18 06:03:57 +01:00
Andrew Tridgell
13bffa02d8 waf: improved error message for bad paths in SAMBA_LIBRARY()
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-02-18 15:09:47 +11:00
Andrew Tridgell
1c5108c98b waf: support building libraries with a directory prefix
SAMBA_LIBRARY('libsmb/smbclient') can now be built, which
distinguishes it from the binary 'smbclient'

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-02-18 15:09:47 +11:00
Andrew Tridgell
ba942c8bfe waf: added SAMBA3_*() build rules to samba3.py
these provide samba build rule wrappers for Samba3 specific subsystems

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-02-18 15:09:47 +11:00
Andrew Tridgell
c7456013b9 waf: give a more sensible error on symlink_bin with missing directory
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-02-18 15:09:47 +11:00
Andrew Tridgell
066a93d41c build: fixed passing of includes= for modules
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-02-18 15:09:46 +11:00
Andrew Tridgell
1570058b0d build: added subdir option for module building
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-02-18 15:09:46 +11:00
Andrew Tridgell
8ef9cb0bed build: added allow_undefined_symbols options for libraries and modules
the s4 build uses linker flags to disallow undefined symbols in
libraries. To accomodate s3 libraries in the top level build we need
to be able to disable this on a per-library basis.

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-02-18 15:09:46 +11:00
Andrew Tridgell
b31055189a build: make ADD_LDFLAGS() returns the flags that were added
this will be used by the s3 top level build to work out how to undo
the effects of -Wl,-no-undefined

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-02-18 15:09:46 +11:00
Andrew Tridgell
433f68efaa waf: library_flags() doesn't only operate on conf objects
use a better name for the first argument

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-02-18 15:09:46 +11:00
Andrew Tridgell
aec015525b waf: added subdir= option in SAMBA_*() rules
this allows you to prepend a subdirectory to the source rules, after
variable substitution. This is useful for the s3 waf build when it is
in s3build/
2011-02-18 15:09:45 +11:00
Andrew Tridgell
a7ee6e81ff waf: use Utils.WafError() instead of sys.exit(1)
better to raise an expection than just exiting
2011-02-18 15:09:45 +11:00
Andrew Bartlett
dce69c29e7 waf Fix dependencies for .pc (pkg-config) files
We used the wrong parameter for the dependency calculation.

thanks to Thomas Nagy for the fix!

Andrew Bartlett
2011-02-16 00:24:12 +01:00