Commit Graph

333 Commits

Author SHA1 Message Date
christos
5fc19dec20 fix mkdebug for private libraries.
while here, centralize the strip variable handling per type of object.
2013-04-04 21:15:15 +00:00
pooka
44e3d14dbc Make "make DBG=-g -O2" for a library once again produce a shared library
with debugging symbols (irregardless of .debug).
2013-03-05 21:16:24 +00:00
nakayama
93c32b3617 Fix copy and paste miss introduced in rev 1.327. 2013-02-13 08:00:47 +00:00
christos
014096fb90 Allow setting _LIB_PREFIX externally. 2013-02-09 17:18:17 +00:00
spz
cd9c73575e typo in a MKDEBUGLIB part 2013-02-09 12:17:20 +00:00
matt
4609daf1bc Add missing } 2013-02-08 04:06:25 +00:00
christos
738b87c983 - factor out variables so that the code is more readable, make them conistent
- use _LIB_PREFIX correctly.
2013-02-08 02:30:53 +00:00
christos
1d92830f7c Make the libfoo.so.X.Y.debug files actually contain debug symbols if MKDEBUG. 2013-01-22 20:43:17 +00:00
pooka
813e9ae68d Make it easier build binaries against the host's libs, e.g.
libpthread which might be in /lib/x86_64-linux-gnu/libpthread.so.0
or some other unholy place.
2012-11-13 22:30:38 +00:00
joerg
067600c8cf Revert last, it breaks the tricks xsrc uses. 2012-08-23 21:21:14 +00:00
joerg
8e96262375 Remove SHLIBINSTALLDIR and SHLINKINSTALLLIBDIR. Add rpath entries, if
SHLIBDIR differs from /usr/lib.
2012-08-23 15:45:02 +00:00
christos
f788a13164 From pooka: Fix EXTERNAL_TOOLCHAIN compilation where crti/crtn are not in the
same directory as crtbegin
2012-07-19 19:42:45 +00:00
matt
47c982a38d Add support for --combine with gcc. 2012-02-19 23:19:37 +00:00
christos
dfa5043919 rename to OBJCOPYLIBFLAGS 2012-01-28 23:13:24 +00:00
christos
c37ad7ee66 Provide a way to override the default objcopy flags for library modules. 2012-01-28 21:32:13 +00:00
mrg
4a9d1308c3 obsolete libgcc_pic and friends. all libgcc's are supposed to be pic
for platforms with shlibs already (and are.)

this obsoletes our hacks for the libgcc specs to use libgcc_pic, and
fixes a couple of other issues reported to me directly.
2011-10-07 09:15:21 +00:00
apb
c850a5ae67 If the number of entries in CLEANFILES is too large, then the
commands in bsd.clean.mk encounter errors like "exec(/bin/sh)
failed (Argument list too long)".  Avoid that by splitting the
files to clean into several lists using different variable names.

This should fix PR 45397, at least until the number of files
grows much larger.
2011-09-25 11:20:41 +00:00
apb
386a389aab Move all "clean" and "cleandir" processing to a new bsd.clean.mk
file, as proposed in tech-toolchain.
2011-09-10 16:57:35 +00:00
joerg
ba5a5a1119 Add new "analyze" command to run clang's static analyzer in a directory
on all C/C++ files.
2011-08-27 18:35:19 +00:00
joerg
5e3fd2e02b Adjust --sysroot related usage:
-Wl,-rpath does not expand =, so just drop it.

Drop -Wl,-rpath-link entries that duplicate the -Wl,-rpath entries, this
is done implicitly now that ld is built with sysroot support.

Use ${DESTDIR} explicitly for the remaining -Wl,-rpath-link entries.
2011-04-11 23:03:38 +00:00
joerg
c28ff146c9 For USETOOLS=yes, use the --sysroot support of the compiler to cut down
the number of hard-coded pathes and magic invocations.
2011-04-10 16:52:36 +00:00
matt
94810ded7b Only define DPLIBC if LIBC_SO is not empty otherwise we an errant
dependency on DESTDIR.
2011-02-10 21:55:33 +00:00
joerg
5c52343643 Allow HOSTLIB to use C++ by not specifying -nostdinc++. 2011-02-06 00:52:49 +00:00
joerg
d9da1368fc Don't depend on ${CC} passing down -R to ld, use -Wl,-rpath explicitly. 2010-12-08 01:57:22 +00:00
lukem
44f36b23ab Preserve date on original shared library or program when stripping
the debug symbols and adding the debug-link to .debug.
Use '(rm -f file; false)' in the failure path to force failure.
Based on solution proposed by Nicolas Joly on tech-toolchain in July 2010.
Should fix PR toolchain/44046 from Andreas Gustafsson.
2010-11-08 06:54:52 +00:00
mrg
4c92852a80 remove almost all the ability to build netbsd with an a.out target.
we're ELF now, and there are many missing checks against OBJECT_FMT.
if we ever consider switching, the we can figure out what new ones
we need but for now it's just clutter.

this doesn't remove any of the support for exec_aout or any actually
required-for-boot a.out support, only the ability to build a netbsd
release in a.out format.  ie, most of this code has been dead for
over a decade.

i've tested builds on vax, amd64, i386, mac68k, macppc, sparc, atari,
amiga, shark, cats, dreamcast, landisk, mmeye and x68k.  this covers
the 5 MACHINE_ARCH's affected, and all the other arch code touched.
it also includes some actual run-time testing of sparc, i386 and
shark, and i performed binary comparison upon amiga and x68k as well.


some minor details relevant:
- move shlib.[ch] from ld.aout_so into ldconfig proper, and cut them
  down to only the parts ldconfig needs
- remove various unused source files
- switch amiga bootblocks to using elf2bb.h instead of aout2bb.h
2010-07-06 05:59:50 +00:00
lukem
0aad54fe04 Support MKDEBUG for shared libraries. 2010-04-27 14:32:14 +00:00
lukem
781e18114c fix comment (so bracket matching works as intended) 2010-04-26 03:46:00 +00:00
darran
61fb3737eb DTrace: Add CTF generation to the make framework. Only enabled when
MKDTRACE=yes.
2010-03-02 20:49:18 +00:00
njoly
e9915f3b1e Change shared object file extension from .so to .pico, to avoid
conflicts with shared libaries names libXX.so; as recently seen with
MKUPDATE=yes builds for libelf and libnvpair.

All now stalled regular .so files need to be manually removed from
object directories.
2010-02-22 12:33:22 +00:00
christos
8dd41afecc PR/42658: Geoff Wing: Quote directory variables to deal with spaces in the
source pathname.
2010-01-25 00:43:00 +00:00
abs
fb1a714458 Add brief line on SHLIB_MAJOR, SHLIB_MINOR and SHLIB_TEENY in comments
section - addresses PR bin/39693
2009-12-30 12:34:13 +00:00
mrg
a6052e3b04 replace /usr/lib with ${_GCC_CRTDIR} or ${SHLIBDIR} as appropriate. 2009-12-12 21:33:50 +00:00
uebayasi
cf4c152485 When PROGS / LIBS are used, you can pass each PROG / LIB specific parameters
to ${LD} via:

	${LDADD.${PROG}}
	${LDFLAGS.${PROG}}
	${LDSTATIC.${PROG}}
	${LDADD.${LIB}}
	${LDFLAGS.${LIB}}

OTOH you can't pass parameters to ${CC}, because in suffix rules make(1) only
knows the name of ${.IMPSRC} and ${.TARGET}; it's users' responsivility to
define ${CC} parameters to all the sources of a given ${PROG} / ${LIB}.

Should address bin/42381.

(Bug in this commit log was pointed out by mrg@.)
2009-12-08 15:18:42 +00:00
tsutsui
b00cd20126 If CPPFLAGS or CXXFLAGS already contains -nostdinc or -nostdinc++,
don't add ${CPPFLAGS_ISYSTEM} or ${CPPFLAGS_ISYSTEMXX} to refer
${DESTDIR}/usr/include or ${DESTDIR}/usr/include/g++.

This change might cause errors on some MD stand dir, but in that case
each Makefile should be fixed to search proper system include paths
by -Ipath option in own CPPFLAGS.
2009-11-27 11:44:36 +00:00
apb
91fe922f05 Add LINKSOWN, LINKSGRP, and LINKSMODE variables for use by bsd.links.mk
when installing hard links.  They have no effect except when using a
metalog, in which case the information is added to the metalog.  In
the future, these variables may be replaced by a method for explicitly
recording hard links in a metadata log.

Also change a few things that called ${INSTALL_LINK} without going
through bsd.links.mk.

Reviewed by perry and joerg.  This should fix PR 24457 and PR 41155.
2009-04-10 16:16:12 +00:00
perry
6b7db9a3b4 Add a _ARRANFL for the flags for invoking ar as ranlib.
Will be used only for Makefile.rump for now.
2009-04-01 17:47:39 +00:00
perry
1fd3f53afd Add a MKARZERO flag, which invokes ar(1) with the new D flag when it
is set to "yes" -- defaults to "no" except for build.sh builds. This
results in a deterministic .a file rather than one that reflects
timestamps and permissions on the source files.

Also, clean up the ar flags we're using, and remove a redundant use of
ranlib that on a modern POSIX ar can be done with the "s" flag.

Discussed on tech-toolchain
2009-03-13 16:23:31 +00:00
he
a5ec128bee If we have a SHLIB_VERSION_FILE, add is as a dependency for the
library.  This is mostly a convenience, so that you can trigger
a shared library rebuild by touching the shlib_version file, it
should not otherwise impact the build one way or the other.
2009-01-17 12:09:58 +00:00
he
79663d7eed Move _LIBLDOPTS and LDFLAGS to a spot behind LDADD when making a
shared library.  This is done so that -L options pointing into
DESTDIR will come after -L options pointing into our object tree
for shared libraries this shared library depends on.

This makes a difference when shared library major numbers are bumped
(as was recently done in our tree), and you build into an already-
populated DESTDIR, because otherwise the old major version shared
libraries will be picked up, because the new ones have not yet been
installed at this stage. This will in all probability lead to
conflicts later on when linking programs, where one would try to
mix new and old major versions for the same shared library.

I *hope* this will not have any negatively impact by moving other
order-dependent options around; local tests with rebuilds did not
uncover any problems I could see.

OK'ed by lukem@
2009-01-17 12:07:59 +00:00
pooka
53313f280c Add comment requesting modifications to __archivebuild be reflected
in the rump build.
2009-01-08 20:03:59 +00:00
pooka
b14e457e9c Don't use -isystem in rump builds. This ensures that only headers
in the kernel tree are used.
2008-12-08 13:10:21 +00:00
mrg
bcb1925cba add LIBISCXX. if it is != "no", use ${CXX} instead of ${CC} to link
shared libraries.  use it for the one c++ library we have.

fixes PR#39936.
2008-12-06 19:32:05 +00:00
cube
b25860850d Allow the use of NOSTATICLIB along with LIBISPRIVATE to build private libs
that are suitable to be linked into a shared lib.
2008-11-24 02:01:46 +00:00
apb
96230fab84 Use ${TOOL_AWK} instead of ${AWK} or plain "awk" in make commands.
Pass AWK=${TOOL_AWK:Q} to shell scripts that use awk.
2008-10-19 22:05:19 +00:00
christos
81dd08df0d handle assembly files for MKPIE 2008-10-19 15:22:50 +00:00
christos
66d46cebd1 make .a archives PIC for MKPIE 2008-10-17 17:29:39 +00:00
joerg
5af38558ac Add MKSTRIPIDENT to remove the RCS IDs from binary programs and shared
libraries for space-constraint systems. The description is based on the
feedback of hubertf@, the logic on input from lukem@

This obsoletes the removal of LIBC_SCCS and SYSLIBC_SCCS for libc builds.
2008-09-09 11:54:19 +00:00
christos
4b67625a5e fix debugging library build. 2008-08-13 16:36:15 +00:00
lukem
01ca4a276a Fix installed symlinks for LIBISMODULE=yes.
Further fixes to support for SHLIB_MAJOR set without SHLIB_MINOR.
2008-08-10 11:06:43 +00:00