>I have a proposal regarding the OBJLINK option; let's drop it. No, it is quite useful for actually working with the objects (it saves some `make whereobj's...).
>Currently, OBJLINK breaks world when NOAOUT is undefined -- that is, for >the legacy build. This is because making the objlink target for aout >libraries blows away the existing objlinks that have already been >created for building ELF libraries. OBJLINK is not useful for `make world' or `make aout-to-elf' so don't use it for them. In particular, don't put it in sys.mk, /etc/make.conf or /etc/make.conf.local so that it gets used for all invocations of `make'. >The result is that a.out libraries are installed where ELF libraries >should be, and their ELF counterparts aren't installed at all. This is unfortunate, but it's a deficiency of the legacy build, not of OBJLINK. The build can't be expected to handle all types of junk that may be in the source directories. obj subdirectories may also break it. Some of these problems can be solved by running `make cleandir' once or twice as mentioned in your followup to the PR. `make world' doesn't do this automatically because it would usually just double the amount of time required for cleaning. >I've spoken to some folks who've been around a while (my FreeBSD mentor >and a colleague who's into NetBSD) and have an understanding of why the >objlink functionality exists... hysterical raisins only. Not quite. obj links were originally used to permit building objects in a separate tree. `make' only supported building in the current directory, or in the obj subdirectory (which may be a symlink to to the actual directory), or in a machine-dependent subdirectory. The obj symlink case was used (unconditionally for `make world') to build the objects in /usr/obj. This was bad because it required writing to the source tree, and for other reasons. Then when `make' was changed to support building objects in a separate obj directly, the OBJLINK macro was added to support building the links anyway, since they are useful for working with the objects. >If it were simply tautologous, there'd be no reason to remove it. But >since it's blowing up in people's faces (two PR's at least) and since we >have "a better way" that _doesn't_ blow up, I vote to retire the beast. People shouldn't use it if they don't know what it is for. The links should be named differently so that they aren't treated specially by `make'. Bruce To Unsubscribe: send mail to majord...@freebsd.org with "unsubscribe freebsd-current" in the body of the message