summaryrefslogtreecommitdiffstats
path: root/share/mk/bsd.lib.mk
Commit message (Collapse)AuthorAgeFilesLines
* Add support for the Compact C Type (CTF) conversions throughout FreeBSD'sjb2008-05-221-0/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | system makefiles. Note that the CTF conversion defaults to off. We may choose to change this default later if DTrace proves popular and people are prepared to wear the compilation performance impact of compiling with debug symbols all the time. Setting NO_CTF in the make args or user environment turns off CTF conversion. Even if we choose to default CTF generation to on later, we still need NO_CTF so that the buildworld process can bootstrap the tools without needlessly generating CTF data for temporary tools. Setting WITH_CTF in the make args or user environment (and _NOT_ in /etc/make.conf) is the only way to enable CTF data conversion. Nore that this can't be implemented the same way that the WITH_ and WITHOUT_ stuff is implemented throughout the buildworld because the CTF conversion needs to work when building a simple object without a Makefile, using the default rules in sys.mk. Typing 'make test.o' with no makefile and just a source file test.c should work. Also, typing 'make WITH_CTF=1 test.o without a makefile and just a source file test.c should work and produce an object with a CTF elf section. Typing 'make WITH_CTF=1 CFLAGS=-g test.o' without a makefile and just a source file test.c should produce an object with both a CTF elf section and the debug elf sections. In the FreeBSD build where more .mk files are used than just sys.mk which is included my make by default, the use of DEBUG_FLAGS is the correct way to enable a debug build. The important thing to note here is that it is the DEBUG_FLAGS setting that prevents libraries and programs from being stripped on installation. So, for the addition of CTF data conversion, setting DEBUG_FLAGS to contain -g, without NO_CTF, will cause the ctfconvert and ctfmerge build programs to be executed also with the -g arg so that debug symbols are retained rather than being removed after the CTF data elf section has been added. Add DTrace libraries to the list of libnames.
* Fix spelling mistake in comment.kan2008-04-091-1/+1
|
* - Convert NO_INSTALLLIB option to a new syntax: makefiles shouldru2007-10-201-1/+1
| | | | | | | | | | | test MK_INSTALLLIB, users can set WITHOUT_INSTALLLIB. The old NO_INSTALLLIB is still supported as several makefiles set it. - While here, fix an install when instructed not to install libs (usr.bin/lex/lib/Makefile). PR: bin/114200 Submitted by: Henrik Brix Andersen
* Style: remove redundant parentheses.ru2007-05-211-1/+1
|
* Enable symbol versioning by default. Use WITHOUT_SYMVER to disable it.deischen2007-05-131-1/+1
| | | | | | | | | | Warning, after symbol versioning is enabled, going back is not easy (use WITHOUT_SYMVER at your own risk). Change the default thread library to libthr. There most likely still needs to be a version bump for at least the thread libraries. If necessary, this will happen later.
* Break out Version.map generation code from bsd.lib.mk into akan2007-04-031-33/+2
| | | | | separate bsd.symver.mk file. Include bsd.symver.mk in bsd.lib.mk to maintain the status quo.
* - Don't pass an empty ``NM='' to lorder(1) when NM is unset.ru2006-10-251-3/+17
| | | | | - Don't redundantly use "env". - Protect NM value with quotes, just in case.
* When building WITHOUT_ASSERT_DEBUG, we need to disable -Werror as its easyobrien2006-09-131-0/+1
| | | | to see "warning: unused variable `foo'".
* Add a knob for compiling the tree -DNDEBUG. This turns off all theimp2006-09-111-0/+4
| | | | | | | | asserts and makes binaries smaller. The binaries also become repeatable again. As it was, without this md5's of binaries built with different paths differed. # Where do I document this?
* Pass whatever the value of NM down to lorder. This allows one toimp2006-08-251-3/+3
| | | | | | | override NM in Makefiles when, for example, cross compiling and have that value be used by lorder. NM normally isn't defined, so we pass a null value to lorder. lorder says 'NM=${NM-nm}' which causes it to pickup the default value.
* Add proper dependencies for the version map, and make sure 'make clean'des2006-03-231-1/+4
| | | | | | removes it if it was generated. Reviewed by: ru
* Convert NO_PROFILE and NO_LIB32 to new style.ru2006-03-181-3/+3
|
* Reimplementation of world/kernel build options. For details, see:ru2006-03-171-5/+5
| | | | | | | | http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html The src.conf(5) manpage is to follow in a few days. Brought to you by: imp, jhb, kris, phk, ru (all bugs are mine)
* Teach bsd.lib.mk to auto generate a version map file based ondeischen2006-03-161-0/+40
| | | | | | | | | | | a set of symbol definitions (VERSION_DEF) and symbol mappings (SYMBOL_MAPS). Add an awk script to generate the version map. Suggested by: ru Helped by: ru Reviewed by: ru
* Handle NO_INCS solely inside bsd.incs.mk.ru2006-02-031-2/+0
|
* Add the NO_INCS knob to bsd.prog.mk and bsd.lib.mk to not includeru2005-11-191-0/+2
| | | | | | | | | | bsd.incs.mk, and use it when installing 32-bit compat libraries on amd64. This causes it to *not* overwrite native headers with i386 versions, which was the case with <fenv.h> and <vgl.h>. PR: amd64/83806 Prodded by: bde MFC after: 1 week
* Don't install ${LIB}_pic.a if NO_TOOLCHAINphk2005-08-051-2/+2
|
* Make sure the only thing that follows .endif or .else is a comment.harti2005-04-111-3/+3
|
* Allow building/installing of NLS catalogs while building of librariesphantom2005-02-081-0/+1
| | | | MFC after: 3 days
* NOFSCHG -> NO_FSCHGru2004-12-211-1/+1
|
* NOINSTALLLIB -> NO_INSTALLLIBru2004-12-211-1/+1
|
* NOEXTRADEPEND -> NO_EXTRADEPENDru2004-12-211-1/+1
|
* NODOCCOMPRESS -> NO_DOCCOMPRESSru2004-12-211-6/+6
| | | | | | | | NOINFO -> NO_INFO NOINFOCOMPRESS -> NO_INFOCOMPRESS NOLINT -> NO_LINT NOPIC -> NO_PIC NOPROFILE -> NO_PROFILE
* Start the dreaded NOFOO -> NO_FOO conversion.ru2004-12-211-3/+3
| | | | OK'ed by: core
* Install precious shared libraries with -S.ru2004-10-011-1/+4
| | | | Prodded by: Xin LI
* Add SHLIB as a shortcut for shared-only libraries.des2004-05-071-2/+5
| | | | Not objected to by: bde, ru
* Remove whitespace at EOL.trhodes2004-03-151-1/+1
|
* Fix some style bugs in previous commit.trhodes2004-03-141-4/+1
| | | | | | | | | Fix 'broken' ifdefs. icc does not support profiling yet so remove unfinished code which was supposed to help. Submitted by: netchild (original version) Reviewed by: ru
* This are the build infrastructure changes to allow to use thetrhodes2004-03-121-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Intel C/C++ compiler (lang/icc) to build the kernel. The icc CPUTYPE CFLAGS use icc v7 syntax, icc v8 moans about them, but doesn't abort. They also produce CPU specific code (new instructions of the CPU, not only CPU specific scheduling), so if you get coredumps with signal 4 (SIGILL, illegal instruction) you've used the wrong CPUTYPE. Incarnations of this patch survive gcc compiles and my make universe. I use it on my desktop. To use it update share/mk, add /usr/local/intel/compiler70/ia32/bin (icc v7, works) or /usr/local/intel_cc_80/bin (icc v8, doesn't work) to your PATH, make sure you have a new kernel compile directory (e.g. MYKERNEL_icc) and run CFLAGS="-O2 -ip" CC=icc make depend CFLAGS="-O2 -ip" CC=icc make in it. Don't compile with -ipo, the build infrastructure uses ld directly to link the kernel and the modules, but -ipo needs the link step to be performed with Intel's linker. Problems with icc v8: - panic: npx0 cannot be emulated on an SMP system - UP: first start of /bin/sh results in a FP exception Parts of this commit contains suggestions or submissions from Marius Strobl <marius@alchemy.franken.de>. Reviewed by: silence on -arch Submitted by: netchild
* Fixed bogus ${FOO:Mbar} tests where the actual intent is to checkru2004-01-271-1/+1
| | | | | if the result set is empty. While here, replaced non-bogus empty string comparisons with equivalent empty() checks.
* Guess better the source for object files in case .depend file isru2004-01-171-0/+6
| | | | | | | | | | | | missing and there are multiple choices using multiple inference (suffix transformation) rules. This is known to fix compilation of s_log1p.o in lib/msun on i386, as otherwise it attempted to use s_log1p.S as the source (which is marked broken) instead of legal s_log1p.c which is in CFLAGS. The normal case where .depend file exists is not affected. Reviewed by: bde
* - No need to create libfoo.so -> libfoo.so.X symlinks in /lib,ru2003-09-071-3/+8
| | | | | | | | | | | | as it was decided that our toolchain will revert to looking for libraries in /usr/lib only. - Make /usr/lib/libfoo.so -> /lib/libfoo.so.X symlinks absolute so that they still work if /usr is symlinked. - Remove stale /usr/lib/libfoo.so.X libraries during install. Discussed with: gordon, obrien, peter
* Emergency backout of rev 1.152. This is a 100% guaranteed way to totallypeter2003-09-041-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | hose your system. You end up with just about everything statically linked (except for libpam.so), which then causes all the pam users to fail. eg: login, sshd, su etc all stop working because dlopen no longer works because there is no libc.so in memory anymore. gcc passes -L/usr/lib to ld. The /usr/lib/libxxx.so symlink is *not* a compatability link. It is actually the primary link. There should be no symlinks in /lib at all. Only /lib/libXX.so.Y. peter@daintree[9:27pm]/usr/bin-104> file yppasswd yppasswd: setuid ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 5.1.1, dynamically linked (uses shared libs), stripped peter@daintree[9:27pm]/usr/bin-105> ldd yppasswd yppasswd: libpam.so.2 => /usr/lib/libpam.so.2 (0x280d1000) peter@daintree[9:28pm]/usr/bin-106> Note no libc.so.5. Hence libpam.so.2 has unresolved dependencies. I believe this is also the cause of the recent buildworld failures when pam_krb5.so references -lcrypto stuff etc and when librpcsvc.so references des_setparity() etc. This change could not possibly have worked, unless there are other missing changes to the gcc configuration. It won't work with ports versions of gcc either.
* As ld(1) was taught to look into /lib, there's no longer a reasonru2003-09-031-4/+0
| | | | | | | for having compatibility .so symlinks. Submitted by: obrien Reviewed by: gordon
* Whitespace diff reduction between bsd.prog.mk and bsd.lib.mk outputs.ru2003-08-311-0/+2
|
* When creating .so symlinks, use SHLIBDIR instead of LIBDIR so symlinksgordon2003-08-171-3/+2
| | | | | | | are created in the correct location. Always make them. For libraries that live in /lib, this causes a /lib/libfoo.so and a compatibility /usr/lib/libfoo.so to be created. We may want to drop the /usr/lib/libfoo.so symlink at some future point.
* Handle the case where SHLIBDIR != LIBDIR. When creating links, wegordon2003-08-171-1/+6
| | | | | | | | need relative pathing to work correctly. This is s necessary step for putting libraries in /lib while the .so symlinks still live in /usr/lib. This should be a big NOOP in the case where SHLIBDIR == LIBDIR.
* Don't trust sys.mk,v 1.61 commit log, and make .asm alias for .S.ru2003-07-021-2/+9
|
* Revert to using as(1) to compile plain assembler source files.ru2003-07-021-9/+2
| | | | | | | | All .s files that need cpp(1) processing (see gcc(1) manpage's DESCRIPTION section) have been repo-copied to .S files. This is mostly to bring bsd.lib.mk in agreement with sys.mk. Desired by: obrien
* There's no reason to keep separate AINC knob anymore.ru2003-07-011-8/+5
| | | | | | | | The only real use of it (lib/libc/Makefile) has been fixed, and if necessary, the contents of AINC should be added to CFLAGS. Explained by: bde
* Propagate the ${AINC} knob (assembler include) to sys.mk,ru2003-06-301-3/+0
| | | | and remove the .S.o transformation rule from bsd.lib.mk.
* Removed suffix-transformation rules that are duplicatesru2003-06-301-20/+0
| | | | (or are subsets) of the corresponding rules in sys.mk.
* The use of ld(1) to strip compiler local and non-globalru2003-06-301-36/+0
| | | | | | | | | | | | | | | | | | | symbols from object files has bitrotted over the last thirteen years, and it now does more harm than good. An attempt to work around the problems caused by using ld(1) for stripping was to pass LDFLAGS to the ld(1) command, but this was not right either as ${LDFLAGS} should, by design, be used with cc(1) and not ld(1). One of the proposed solutions was to use the objcopy(1) utility to do the strip work, and the other would be to use strip(1), but Bruce Evans suggested not stripping any symbols at all. This works by leaving the grunt work to the final strip(1) command (when installing the binary). Submitted by: bde
* Add ${CRUNCH_CFLAGS} support for adding compile options to crunchgordon2003-06-291-0/+2
| | | | | | | components. This is generally considered a non-optimal solution but it gets the job done for the /rescue case. Submitted by: Tim Kientzle <kientzle@acm.org>
* Be consistent about the use of ${LDFLAGS} for the internal rules. Somepeter2003-06-261-10/+10
| | | | | were missing. This made it difficult to add backend ABI overrides when building shared libs.
* Remove NOSHLIBS, users can get by with NOPIC.obrien2003-06-101-3/+1
| | | | Desired by: ru
* Add NOSHLIBS.obrien2003-04-271-1/+3
| | | | If one is using NOSHARED, why build the libs.
* Extend the lint handling a bit.markm2002-09-201-3/+3
| | | | | | | | | o Make it possible to prevent parts of the tree from being linted (say) during a 'make world' by setting NOLINT in a leaf Makefile. o Make "make lint" work (better) for executable programs. o Clean up (nuke!) a syntax damaged pipeline.
* Initiate deorbit burn for the i386-only a.out related support. Moves arepeter2002-09-171-20/+0
| | | | | | | | | | | | | | | under way to move the remnants of the a.out toolchain to ports. As the comment in src/Makefile said, this stuff is deprecated and one should not expect this to remain beyond 4.0-REL. It has already lasted WAY beyond that. Notable exceptions: gcc - I have not touched the a.out generation stuff there. ldd/ldconfig - still have some code to interface with a.out rtld. old as/ld/etc - I have not removed these yet, pending their move to ports. some includes - necessary for ldd/ldconfig for now. Tested on: i386 (extensively), alpha
* Drop support for COPY, -c has been the default mode of install(1)ru2002-07-291-3/+3
| | | | | | for a long time now. Approved by: bde
OpenPOWER on IntegriCloud