- provide cpp wrapper using cc -E
- provide c++_r wrapper working like c++
- provide -rpath handling for cc
- fix some debug messages to provide the correct script name
- Add cc_r/xlc_r wrapper using the same rules as xlc itself.
It is used for example by Perl.
- Improve the RPATH emulation:
- Always set -blibpath, use /usr/lib:/lib as default
- If -blibpath is exlicitly given, add to the default
- Additionally append any -Wl,-rpath given.
The PKG_FAIL_REASON isn't executed by default, no idea why, but this
makes it a bit cleaner why the compiler wrapper will fail and fixes the
more important AIX case.
other libraries (specified with -l).
Fixes a linking problem in net-snmp, where the Perl DynaLoader.a library
becomes out-of-order when all -l arguments have been moved to the end of
the command line.
and then call it as a shell function. Note that the shell function is
not called "cache", since some shells have problems when a function has
the same name as a variable.
This speeds up the wrapper by as little as 75 percent for the final link
command of editors/abiword on SunOS-5.10-sparc (before: 20 seconds,
after: 5 seconds).
duplicate them into the list of libraries. Someone may want to mix
static and dynamic linking.
Fixes PR#37228, approved by jlam.
jlam says that a better long-term fix would be to ensure that all
the -L specifications come before the -l specifications, instead
of moving all the -l specifications to the end of the command line.
for several years now, since the directories in the -I... and -L...
options usually don't need quoting. But when the -D... option was
processed using the same code, the bug had become visible.
log file in a format that allows copy-and-paste into a shell. Before, it
wasn't possible to see from the log file whether a space was a delimiter
or part of a shell word.
- USE_CROSS_COMPILATION activates it, CROSS_DESTDIR specifies root of
the target filesystem
- derive _CROSS_DESTDIR from CROSS_DESTDIR or MAKEOBJDIR
- buildlink3.mk prefixes the files to symlink with _CROSS_DESTDIR
- compiler/gcc.mk knows about the target prefix (e.g. i386--netbsdelf)
- PKG_DBDIR is prefixed with _CROSS_DESTDIR
- package-install and bin-install are not called with su
- install and strip are redirected to the tool version
- links for the target specific ar, as, ld, nm, objdump, ranlib and
strip are added
- compiler wrapper detect if linking is requested or not
- special command sinks for CPP and CC/CXX add the cross-compile magic:
- modify include dirs to get the target /usr/include
- modify linker dirs and runpath to use target /usr/lib at link time,
but keep correct rpath entries
Supported-by: Google SoC 2007
Basic tests by he@ on Sparc. Review from jlam@.
line is no longer printed by default. To get that behavior back, you can
set the variable WRAPPER_DEBUG to "yes".
This avoids some noise during the build. The old behavior was mostly
useful on Solaris and IRIX, where a -std=c99 or -c99 option had been
added to the compiler's arguments by the wrapper. This caused
diagnostics that were hard to understand, since the user did not specify
these flags and there was no sign that they had been added.
--version-script works are few enough to warrant fixing each one of them
instead. Silenty dropping the flag makes it impossible to detect whether or
not --version-script is supported. Pointed out by joerg@