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

180 Commits

Author SHA1 Message Date
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
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 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
Andrew Tridgell
9796f7398b build: fixed error message for incorrect waf version
just need configure now

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-02-07 15:03:40 +11:00
Andrew Bartlett
38aacd7a7b waf: Replace python installation rule to allow PYTHONARCHDIR and PYTHONDIR
The old rule could only substitute one part of one line, but we need
to add a second line to handle when PYTHONDIR and PYTHONARCHDIR do not
match.

This also avoids shelling out to sed with a regex, which was difficult
to read.

Andrew Bartlett
2011-02-02 15:21:12 +11:00
Andrew Tridgell
46a3588d3f waf: use PYTHONARCHDIR for installing python shared libs
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Fri Jan 14 08:19:40 CET 2011 on sn-devel-104
2011-01-14 08:19:39 +01:00
Stefan Metzmacher
e0a9b58de8 buildtools/wafsamba: import 'sys' and 'Logs' if we use them
We should avoid generating a backtrace in a normal
error case, just because sys.exit(1) isn't known.

metze
2011-01-05 12:30:23 +01:00
Jelmer Vernooij
2d1e91fd0c wafsamba: Use abi_match in version script files. 2010-12-18 00:47:06 +01:00
Jelmer Vernooij
c09d4b85b5 wafsamba: Specify full vscript path so non-autogenerated files are possible, too. 2010-12-17 19:38:12 +01:00
Jelmer Vernooij
48f91ebc5a wafsamba: Don't build vscript for modules. 2010-12-17 19:21:47 +01:00
Jelmer Vernooij
13b4e6e8c7 wafsamba: Move version script handling out of SAMBA_LIBRARY. 2010-12-17 19:16:33 +01:00
Jelmer Vernooij
85299bea65 heimdal_build: Simplify library handling. 2010-12-17 18:42:34 +01:00
Andrew Tridgell
6f6aa5f775 waf: fixed re-running of build rules
the addition of ldflags deps caused us to re-run the build rules every
time.
2010-12-15 21:48:15 +11:00
Matthieu Patou
a55f5e7080 wafsamba: change the default value for SAMBA_MODULE of pyembed to False
ALL SAMBA_MODULE didn't need this, new modules that could need will just
have to opt this in

Autobuild-User: Matthieu Patou <mat@samba.org>
Autobuild-Date: Tue Dec 14 14:45:15 CET 2010 on sn-devel-104
2010-12-14 14:45:15 +01:00
Andrew Tridgell
1b63c78693 waf: the libXX.inst.so file also depends on the vscript
this fixes a problem with installed libraries not relinking after a
git version change

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Fri Dec 10 09:30:46 CET 2010 on sn-devel-104
2010-12-10 09:30:46 +01:00
Andrew Tridgell
57f2f1d72a waf: remove the restriction that private libraries must not have a vnum
we need the vnum for ABI checking for public libraries built as
private libraries when bundled

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Thu Dec  9 12:47:41 CET 2010 on sn-devel-104
2010-12-09 12:47:40 +01:00
Andrew Tridgell
ca247bee2f waf: fixed path to abi_directory
this broke in a recent patch
2010-12-09 21:49:01 +11:00
Andrew Tridgell
a6351e2bce waf: add a dependency between the library and its vscript
Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Thu Dec  9 04:32:18 CET 2010 on sn-devel-104
2010-12-09 04:32:18 +01:00
Andrew Tridgell
f3d36b13ac waf: don't use symbol versioning on our modules
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-12-09 13:18:08 +11:00
Andrew Tridgell
c90b7824a6 waf: use vscripts for our private libraries too
if the library has a vnum, then use it. If it doesn't have a vnum then
use the application version for symbol versions
2010-12-09 13:18:03 +11:00
Andrew Tridgell
ebe2867fc2 waf-abi: auto-generate per-symbol versions from ABI files
This changes our version-script generation to use the ABI files that
are saved in git with each version number change of our public
libraries.

We use these ABI files to generate a linker version script that gives
the exact version number that each symbol was introduced. This
provides us with automatic fine grained symbol versioning.

Pair-Programmed-With: Jelmer Vernooij <jelmer@samba.org>
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-12-09 13:17:19 +11:00
Stefan Metzmacher
e3a7a080b4 buildtools: private_libraries should not have a version in the soname
metze
2010-12-08 16:11:49 +01:00
Stefan Metzmacher
3d289fe14d buildtools: make sure we have no '+' in the version scripts
This happens if '--git-local-changes' was used.

metze
2010-12-08 16:11:48 +01:00
Andrew Tridgell
be99d84972 waf: make all generators depend on their rules
this ensures we rebuild when a constructed rule changes
2010-12-08 05:26:06 +01:00
Andrew Tridgell
35134214ae waf: use -Wl,--version-script if available
This enables symbol version on our libraries, if the system supports
it

If the library is a public library, then set the symbol version based
on the major number. If it is a private library then set it based on
the full version number (which will include the git hash if
available).

This ensures that applications using our libraries don't use symbols
from other libraries that they may be linked to. It also ensures we
only use the right version of any private libraries.

Note that the linker ends up generating both a version and unversioned
symbol for all symbols. This means existing users of our public
libraries will continue to work, with symbols resolved to the
unversioned symbol. When applications are re-linked they will bind to
the specific symbol version.

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
Pair-Programmed-With: Jelmer Vernooij <jelmer@samba.org>
2010-12-08 05:26:06 +01:00
Andrew Tridgell
d5bf525591 s4-waf: get the version number right on private libraries
use the first digit of the version number for the library version

Pair-Programmed-With: Jelmer Vernooij <jelmer@samba.org>
2010-12-08 05:26:06 +01:00
Matthieu Patou
994bcf35d2 build: fix hpux build pb
Pair-Programmed-With: Thomas Nagy <tnagy2pow10@gmail.com>

Fix the library extension from .so to .sl
Add full path to library when linking this is needed due to a strange
behavior of HP-UX:

This command: gcc demo demo.c -L dir1/dir2/ -lsomelib
will give a binary with a hard coded lib like dir1/dir2/libsomelib.sl.
Somehow like a partial rpath, it has the first impact of fooling waf
detection of wether the plateform support libraries or not (leading to
being unable to compile samba on HPUX) and the impact of having non
functionnal binaries.

Autobuild-User: Matthieu Patou <mat@samba.org>
Autobuild-Date: Wed Dec  8 00:32:50 CET 2010 on sn-devel-104
2010-12-08 00:32:49 +01:00
Andrew Tridgell
fcdbd06136 waf: fixed the build with a space in the source directory 2010-11-21 23:10:14 +11:00
Jelmer Vernooij
c9756cac05 waf: Put private libraries in a separate directory when building.
Thanks to Tridge for pointing out what exactly I had to change. :-)
2010-11-05 02:06:06 +00:00
Andrew Tridgell
dfa20fcd48 waf: split pkgconfig logic into a separate module 2010-11-03 01:34:04 +00:00
Andrew Tridgell
4404b4c700 waf: removed the module aliases code
This is not needed with the new ldb modules approacg
2010-11-01 18:55:19 +11:00
Andrew Tridgell
fd6d29bc08 waf: added module_init_name parameter to SAMBA_MODULE()
this will be used for ldb module loading
2010-11-01 18:55:18 +11:00
Matthieu Patou
edebb76a61 build: strip -single_module when doing bundle on mac OS X 2010-10-30 13:45:18 +00:00
Andrew Tridgell
e08c9ac696 waf: get rid of target aliases in wafsamba
these aliases are no longer needed, and can cause a lot of confusion
2010-10-30 23:49:01 +11:00
Andrew Tridgell
df34bb2685 waf: build all libraries after all object files
this makes it easier to perform symbol checking before the link
stage. The two new build groups symbolcheck and syslibcheck will be
used by the symbols.py extension
2010-10-30 23:49:00 +11:00
Andrew Tridgell
d1e94980bf waf: cope with rules with no inputs
when we display a rule with no inputs, just call the original display
function

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-10-30 23:49:00 +11:00
Stefan Metzmacher
073d3bf1fc wafsamba: support 'soname' attribute on SAMBA_LIBRARY()
It's sometimes needed to specifiy the soname directly.

metze
2010-10-27 05:07:22 +02:00
Jelmer Vernooij
c251cb62ec wafsamba: Fix soname for standalone private libraries.
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Tue Oct 26 18:10:13 UTC 2010 on sn-devel-104
2010-10-26 18:10:13 +00:00
Jelmer Vernooij
a74e8be6d1 waf: Stop automaticaly changing dashes to underscores in library names. 2010-10-26 10:17:18 -07:00
Jelmer Vernooij
8cf61377aa waf: Remove lib prefix from libraries manually. 2010-10-26 10:17:17 -07:00
Jelmer Vernooij
df76c3f147 waf: build private libraries with so names. 2010-10-26 10:17:17 -07:00
Jelmer Vernooij
49ef288819 waf: Rename some BUNDLED_ functios to PRIVATE_. 2010-10-23 22:24:06 +00:00
Andrew Tridgell
7ffb781e81 waf-python: make the pyext flag add the pyembed features for libraries
this is rather strange, but we get build errors without it. There may
be a bug in the waf python tool, or I may misunderstand how to use it
2010-10-21 19:03:27 +11:00
Andrew Tridgell
0966776b36 waf: fixed the handling of -Wl,-no-undefined
this flag was not being propogated to our link rules, so we were not
in fact enforcing no undefined symbols in libraries.
2010-10-21 19:03:27 +11:00
Andrew Tridgell
ec7bb906db waf: added pyext option to SAMBA_LIBRARY()
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-10-21 19:03:26 +11:00
Andrew Tridgell
7cba3cfac8 waf: replace the is_bundled option with private_library
'private_library' better captures what we are trying to get at when we
bundle a library
2010-10-21 19:03:24 +11:00
Andrew Tridgell
29c0b86126 waf: re-work the module alias code
we now create a base library, and then create the alias modules as
wrappers around that base. That prevents double instantiation of any
object files in the modules

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-10-21 19:03:23 +11:00
Andrew Tridgell
cd7190b802 waf: allows libraries to be marked as private_library=True
this is for libraries where we make no promises about the API, but
where we wish it to be a library to allow our binaries to use common
code.

These libraries always get the project suffix added to the library
name, to ensure we are in a separate namespace

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-10-21 19:03:23 +11:00
Andrew Tridgell
968381a4e2 waf: put -Wl,-no-undefined only in the linker flags, not when compiling C 2010-10-19 11:22:35 +11:00
Andrew Tridgell
d485701436 waf: automap shared library names from .so to the right extension
this should help with MacOSX .dylib libraries
2010-10-19 11:22:35 +11:00