Commit graph

211 commits

Author SHA1 Message Date
tnn
e6872cea49 Add IRIX command sinks, needed to get rpath fixup when using GCC. 2008-02-19 17:36:51 +00:00
tnn
f0462b82fe Pass gcc's -mabi=* option (used on mips) without warning. 2008-02-19 16:50:11 +00:00
rillig
410affab94 Do not load the $cache file for every argument. Instead, load it once
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).
2007-11-28 14:45:22 +00:00
rillig
73b5319da9 Oops, don't overflow the terminal. 2007-11-28 13:18:50 +00:00
rillig
b9163bca81 sunpro doesn't need -lstdc++. 2007-11-28 13:03:56 +00:00
rillig
ba3e0729b2 Using a single awk process instead of a pipe of four grep processes
should be both faster and easier to read.
2007-11-28 12:57:46 +00:00
rillig
89870d4887 Sunpro doesn't need -rdynamic, since the linker is sensible by default.
This change also works around shells/scsh's broken check for -rdynamic.
2007-11-19 00:45:49 +00:00
he
4c77b0e4fd Preserve the -Wl,-Bstatic / -Wl,-Bdynamic arguments, but also
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.
2007-11-08 17:38:17 +00:00
rillig
5fba458aef sunpro doesn't know -ggdb. 2007-11-01 14:31:03 +00:00
is
0596912f74 Handle more variants of the position independent code flag from Solaris.
This is needed for Xaw3d. Fix suggested by joerg@.
2007-10-17 07:30:10 +00:00
martti
bd986edbc7 Remove trailing spaces. 2007-10-09 19:19:08 +00:00
joerg
d05706a374 When linking with XLC on AIX, force -brtl to get linkage behaviour we
expect from other platforms.
2007-10-05 18:19:45 +00:00
rillig
553d52ca88 When CPP is defined as "cc -E", the wrapper framework created the
wrapper for gcc and cc as type "CPP", although these aren't C
preprocessors. By preventing the code from overwriting files, this works
now.
2007-09-20 18:17:18 +00:00
rillig
4334ec644a Fixed incorrect quoting of arguments. This behavior had been unnoticed
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.
2007-09-19 13:08:19 +00:00
rillig
e446929efd Before and after the transformations, the commands are written to the
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.
2007-09-19 13:02:15 +00:00
rillig
2e36f667a2 The word "skipped" is ambiguous. Use "untransformed" instead. 2007-09-13 10:50:43 +00:00
rillig
f4afca78cc Merge -D and the following word, so -D UNIX -D WHATEVER doesn't get
transformed to -D UNIX WHATEVER (because the wrapper eliminates
duplicate arguments). Now it becomes -DUNIX -DWHATEVER. This fixes a
build problem reported in
http://mail-index.netbsd.org/pkgsrc-users/2007/09/10/0004.html.
2007-09-11 08:33:11 +00:00
rillig
1bd0ba21be gcc knows -fpic. 2007-09-08 13:37:51 +00:00
joerg
005620851f Add core of the infrastructure support for cross-compilation.
- 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@.
2007-08-02 18:19:31 +00:00
rillig
a43d0cbe68 Changed the plain "mkdir" into ${MKDIR}, like in all the other cases.
Apparently, the tools directory isn't in the PATH at the point where
this code is executed.

Fixes PR 35487.
2007-06-18 07:33:34 +00:00
rillig
3c335872b8 Added transformations for -R, -fPIC, -kPIC, -KPIC and -g3. 2007-06-15 15:34:31 +00:00
rillig
4a8946c97e Added a slight variation of the patch provided in PR 36187 by Naoto
Morishima.
2007-06-09 11:27:33 +00:00
rillig
287ae72163 Replaced ${_PKG_SILENT}${_PKG_DEBUG} with a simple ${RUN} to save some
space.
2007-06-06 13:20:34 +00:00
martti
5867247b54 Remove trailing spaces. 2007-05-28 11:07:00 +00:00
rillig
a5f2e60928 When a wrapped compiler or linker command fails, the transformed command
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.
2007-05-19 17:25:56 +00:00
tnn
c7d09b8f3c Back out previous. The packages that incorrectly assume that ld
--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@
2007-05-06 10:05:38 +00:00
tnn
417f311e41 --version-script is GNU ld specific, remove from command line. 2007-04-29 13:16:48 +00:00
tnn
305f2d4288 Correct comment about -g3 flag. 2007-04-28 21:32:30 +00:00
tnn
5246b02f93 Handle linker optimization flag. 2007-04-22 18:56:22 +00:00
tnn
89d0487fe0 fix typo 2007-04-21 14:53:19 +00:00
tnn
cf0d723c6f add workaround for ld(1) run path problems and document those 2007-04-21 01:29:25 +00:00
tnn
146da1286c Teach pkgsrc about HP-UX. 2007-04-14 14:17:49 +00:00
tnn
2df0aa35f6 Add OSF1 wrapper quirks to always enable posix sockets and iso C++ iostreams.
Fixes PR 31444. Fixes PR 31447. Both problems reported by Rumi Szabolcs.
2007-04-12 14:51:10 +00:00
rillig
f98d016454 + -march=* 2007-04-10 03:44:34 +00:00
tron
aef83eee53 Remove special treatment of "DynaLoader.a" completely. It's not necessary
with current libtool version and breaks the build under Darwin 8.x and
NetBSD 4.0_BETA2.
2007-04-09 22:33:26 +00:00
rillig
b422be0f7a wrapper_type can be IMAKE, too. 2007-03-15 22:09:29 +00:00
rillig
1ceda05973 Added the flags to control diagnostics. 2007-03-07 22:02:34 +00:00
rillig
ca73e90164 Fixed the documentation of the opt:*:* transformation. 2007-03-07 12:40:54 +00:00
rillig
215797f36f The compiler option -Wl,foo,bar,baz is split into -Wl,foo -Wl,bar
-Wl,baz before processing the resulting options again.

Fixes PR 32203.
2007-02-23 00:31:29 +00:00
rillig
7cdc72c444 Changed the default warning message to include the word "unknown", since
otherwise it doesn't sound like a warning.
2007-02-22 14:54:32 +00:00
rillig
6699eeb63a More documentation. 2007-02-22 07:15:54 +00:00
rillig
1b99f46aad gcc understands -Wno-unused-parameter. 2007-02-21 19:29:56 +00:00
rillig
4d2476efa1 Changed the failure into a warning when options such as "-I -L" appear
next to each other.
2007-02-21 12:27:36 +00:00
rillig
a0dd1a37e7 The options -I, -L and -R must not be followed directly by another
option. Instead of just merging them, the wrapper fails. Let's see which
packages get broken by that and then fix them.

I've also heard rumours that a plain -L is used as an alias to -nostdlib
in some compilers. This would have been handled wrong up to now, since
it definitely wasn't intended to be merged with the following argument.
2007-02-21 09:43:26 +00:00
rillig
f1bc7a1210 Mapping command line options to the ABI is not as simple as I thought:
-32 does _not_ belong to ABI 32. Instead, the mapping is:

	ABI	Options
	(undef)	-o32 -32
	32	-n32
	64	-64

While here, allowing -OPT:* to pass through to the compiler, since it
will understand it.

This should fix PR 35729.
2007-02-20 16:12:41 +00:00
rillig
5495a908a1 The ABI for which the code should be generated can be queried from the
wrapper_abi variable. This is used in the MIPSpro wrapper to reject any
package that tries to compile a file for the wrong ABI. This is not just
a warning because such a package most likely has more severe problems.

The gcc -Wall option seems to be similar to the MIPSpro -fullwarn
option, so map them.
2007-02-19 14:50:33 +00:00
rillig
b157602e03 The argument -64 means to use the 64-bit ABI for Sun C and MIPSpro. 2007-02-19 14:43:05 +00:00
rillig
ecb69be79f The mipspro compiler knows -32, -n32 and -64, of course. 2007-02-18 23:59:57 +00:00
rillig
ea5e7c8c6d Documented WRAPPER_REORDER_CMDS. 2007-02-18 23:49:44 +00:00
rillig
96a2636f64 Added option handlers for all of -fPIC, -fpic, -KPIC, -kPIC,
-xcode=pic13 and -xcode=pic32, as suggested in PR 35555.

This also fixes and old bug where -fPIC (32 bit) had been translated to
-kpic (13 bit), but apparently that doesn't make a big difference in
practice.
2007-02-07 18:25:29 +00:00