1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00
Commit Graph

552 Commits

Author SHA1 Message Date
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
ffb2b3d1c6 waf: make mkdir_p on a empty string not recurse forever 2010-12-09 13:17:27 +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
aee086c4d5 buildtools: add the PRIVATE_EXTENSION for private libraries
metze
2010-12-08 16:11:48 +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
8b3ae1a3b8 waf: added --disable-symbol-versions configure option
some people may not want symbol versions.
2010-12-08 12:01:25 +01:00
Andrew Tridgell
92961d2828 waf: support @LIB_RPATH@ in pc files
this will be used to get the needed -Wl,-rpath options into our pc
files

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-12-08 12:01:25 +01:00
Matthieu Patou
53b49d4091 build: tru64 needs -shared for building libs
Autobuild-User: Matthieu Patou <mat@samba.org>
Autobuild-Date: Wed Dec  8 08:33:54 CET 2010 on sn-devel-104
2010-12-08 08:33:54 +01:00
Andrew Tridgell
b352ecb1cf waf: added -Wmissing-prototypes to build
This ensures that we always have a prototype for any function we
declare

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Wed Dec  8 06:12:07 CET 2010 on sn-devel-104
2010-12-08 06:12:07 +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
d0c93ba115 waf: added configure test for -Wl,--version-script
this checks that the linker supports --version-script

Pair-Programmed-With: Andrew Bartlett <abartlet@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
Jelmer Vernooij
496ef92b09 wafsamba: Only include versioned files when building tarball from bzr.
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Sun Dec  5 16:13:06 CET 2010 on sn-devel-104
2010-12-05 16:13:06 +01:00
Jelmer Vernooij
8dcd4cca4e wafsamba: Override GIT_DIR without using putenv.
putenv has sideffects on later code. This overrides GIT_DIR for just this call.

Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Fri Dec  3 04:24:53 CET 2010 on sn-devel-104
2010-12-03 04:24:53 +01:00
Björn Jacke
8c365d5d4d waf/buildtools: remove more bash shebangs and fix a == to = 2010-12-02 10:36:06 +01:00
Björn Jacke
fca9d05230 waf/buildtools: use /bin/sh instead of /bin/bash and put ^ in quotes
- some Unix shells actually don't like grep ^foo, use grep "^foo" instead.

- bash is not installed on every system, please avoid #!/bin/bash and
  use #!/bin/sh instead
2010-12-02 10:36:06 +01:00
Stefan Metzmacher
beb01815f0 buildtools: fix --git-local-changes option
If we set the GIT_DIR envvar we also need to set GIT_WORK_TREE,
otherwise we can't expect valid output from 'git diff HEAD'.

metze

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Thu Dec  2 09:09:21 CET 2010 on sn-devel-104
2010-12-02 09:09:21 +01:00
Günther Deschner
133a2ffd00 s3-waf: avoid module name uppercasing.
This finally allows mixed case module names like the classic build
(./configure --shared_modules=charset_CP850)

Guenther

Autobuild-User: Günther Deschner <gd@samba.org>
Autobuild-Date: Wed Dec  1 18:39:14 CET 2010 on sn-devel-104
2010-12-01 18:39:14 +01:00
Andrew Tridgell
380739e9be waf: less verbose message for failing to resolve a syslib path 2010-12-01 16:09:57 +11:00
Andrew Tridgell
bbf953464e waf: use Logs.warn() instead of print() in the symbol check code 2010-12-01 16:09:57 +11:00
Andrew Tridgell
0acc93cc2c waf: added a help target for the other waf builds
this lets the s3 waf build use "make help"

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Wed Dec  1 01:47:50 CET 2010 on sn-devel-104
2010-12-01 01:47:50 +01:00
Jelmer Vernooij
f430dd3cb8 wafsamba: Fix indentation.
Without this change we'd exclude the rpath for private libraries
whenever the first dependency of a subsystem was a public library.

Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Tue Nov 30 13:08:04 CET 2010 on sn-devel-104
2010-11-30 13:08:04 +01:00
Jelmer Vernooij
2a5daa7ddb wafsamba: Only use private library rpath when linking against private
libraries.

Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Tue Nov 30 02:23:37 CET 2010 on sn-devel-104
2010-11-30 02:23:37 +01:00
Jelmer Vernooij
7ab6aa1575 samba_dist: Fix dist for subprojects.
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Tue Nov 30 00:32:41 CET 2010 on sn-devel-104
2010-11-30 00:32:41 +01:00
Andrew Tridgell
fcdbd06136 waf: fixed the build with a space in the source directory 2010-11-21 23:10:14 +11:00
Andrew Tridgell
fe5c48cbed waf: added --git-local-changes configure option
if you use --git-local-changes then the version number that waf
extracts from git will have a '+' on the end if you have local
changes, as determined by running 'git diff'.

This used to be the default, but unfortunately it is far too slow on
some systems. On a NFS build system I was using the first line of
configure took about 2 minutes.

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Tue Nov 16 01:51:54 UTC 2010 on sn-devel-104
2010-11-16 01:51:54 +00:00
Andrew Tridgell
88d694ac8e waf: fixed configure again on RHEL5
the fancier cmd_output() broke git versioning

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Mon Nov 15 11:33:41 UTC 2010 on sn-devel-104
2010-11-15 11:33:41 +00:00
Jelmer Vernooij
e4eba98f83 waf/samba_version: Simplify git show command.
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Fri Nov 12 18:38:21 UTC 2010 on sn-devel-104
2010-11-12 18:38:21 +00:00
Jelmer Vernooij
8d07e6d986 samba_version: Make COMMIT_IS_CLEAN an int rather than a string. 2010-11-12 17:42:14 +00:00
Jelmer Vernooij
7d961ddc44 samba_version: Simplify dirty tree detection. 2010-11-12 17:42:14 +00:00
Jelmer Vernooij
c338dede1b waf/samba_version: Support integer defines. 2010-11-12 17:42:14 +00:00
Jelmer Vernooij
7b964c7269 samba_version: When working from git checkout, display git revision SHA1 rather
than Bazaar revision ids.
2010-11-12 17:42:13 +00:00
Jelmer Vernooij
a0c2040ab6 samba_version: Support retrieving snapshot identity from bzr. 2010-11-12 17:42:13 +00:00
Jelmer Vernooij
45af495695 samba_version: Cope with building snapshots in directories without git checkout.
Error out when run in a git checkout in which git fails.
2010-11-12 17:42:13 +00:00
Jelmer Vernooij
d9a0a18dda Put git tree finding into a separate function. 2010-11-12 17:42:13 +00:00
Jelmer Vernooij
80e2adc9c3 sambaversion.py: Some cleanups, make less git-specific. 2010-11-12 17:42:13 +00:00
Jelmer Vernooij
e3b7ce85e2 wafsamba: Support make dist from bzr checkout. 2010-11-12 17:42:13 +00:00
Andrew Tridgell
8759523295 waf: go back to the previous method of handling .inst. rules
the change broke the library linkages for some library, as spotted by
Brad
2010-11-08 15:46:27 +11:00
Andrew Tridgell
e427f2fc81 waf: fixed the names of the installed libraries after the last change
Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Mon Nov  8 02:31:18 UTC 2010 on sn-devel-104
2010-11-08 02:31:18 +00:00
Andrew Tridgell
c0297e5e89 waf: fixed tabs/spaces for python3.0
Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Mon Nov  8 00:55:13 UTC 2010 on sn-devel-104
2010-11-08 00:55:13 +00:00
Andrew Tridgell
b867dc9ea2 waf: prevent us from modifying non-install libs during make install
we need to ensure that 'make install' does not change any of our build
libraries, and only changes the .inst.so libraries, otherwise doing a
make test in the build directory directly after a make install could
use the installed libraries, which would mean using the wrong
LDB_MODULES_PATH

this could cause the "unknown error" loading ldb modules when running
some commands directly after a make install

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-11-08 11:13:28 +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
Jelmer Vernooij
21233bba96 wafsamba: Use project name variable rather than hardcoding 'samba4'.
Suggested-By: Andrew Tridgell <tridge@samba.org>
2010-11-05 02:06:06 +00:00