Commit graph

30 commits

Author SHA1 Message Date
khorben
ae8efeb19b Configure "append_executable" adequately for cwrappers
Match cwrappers' expectations and place an argument per line in the
configuration. Tokenize the arguments when writing the configuration
instead of inside cwrappers.

This should fix PKGSRC_MKPIE.
2017-11-08 03:52:50 +00:00
khorben
6b7f07a1e4 Add support for PKGSRC_MKPIE with cwrappers
This is based on a patch submitted on 16/04/2017 on tech-pkg@ and
adapted by joerg@ for pkgtools/cwrappers. It only consists in the
missing part to actually generate PIE executables with cwrappers if
configured to do so (currently disabled by default). The aim is really
to produce safer binaries where ASLR is in use.

This part in pkgsrc is only supported on NetBSD (x86) with GCC at the
moment.

Tested on NetBSD/amd64, with and without cwrappers, with and without
PKGSRC_MKPIE (all four combinations).
2017-08-25 01:43:17 +00:00
joerg
df836cad8d Simplify PATH handling. Use full pkgsrc path for cwrappers, but skip the
cwrapper directory itself.
2017-05-04 18:30:56 +00:00
joerg
9b3ec3ae6f Hook up the prepend support. 2016-10-05 12:46:43 +00:00
joerg
81428e7010 Drop _LIBTOOL and _SHLIBTOOL and make LIBTOOL and SHLIBTOOL point to the
wrapped version by full path. This fixes some cases where the wrappers
have been bypassed. lang/lua52 triggered the investigation as it failed
to link against libreadline, which should have been translated to
libedit. Tested by jperkin and myself with full bulk builds.
2015-05-04 19:23:19 +00:00
jperkin
c79e6c9aef Move cwrappers WRAPPER_DIR and WRAPPER_BINDIR to wrapper-defs.mk, it is
included by bsd.prefs.mk so we need to ensure consistency.
2015-04-28 21:15:01 +00:00
jperkin
614cc638cc Ensure the wrapper directories are created before WRAPPER_TARGETS. 2015-04-28 21:08:34 +00:00
jperkin
d040a0e7c5 Split cwrappers from legacy wrappers. We no longer generate the legacy
wrappers when USE_CWRAPPERS is enabled, saving a reasonable amount of
I/O during builds, mostly due to avoiding the transform/untransform sed
file generations.

WRAPPER_DIR and WRAPPER_BINDIR are used by various packages to override
or point to specific wrappers, and these now point to the cwrappers
directory when enabled, removing the need for CWRAPPERS_BIN_DIR
duplication and fixing packages which previously were using legacy
wrappers by accident.

A number of targets are now duplicated between bsd.wrapper.mk and
cwrappers.mk, the intention being that the legacy wrappers will be
deprecated once cwrappers is verified on all supported platforms.  If
that turns out to take longer than expected, we will probably want to
introduce a wrapper.mk to abstract them away before loading the
appropriate back-end.
2015-04-27 19:59:07 +00:00
jperkin
67722761c5 Add a 'gfortran' alias so that GCC fortran goes via the wrappers. 2015-03-17 18:41:20 +00:00
joerg
dfbcb4d26d PR 49686: Drop -I and -L options references the built-in search
directories of the compiler/linker when using cwrappers. Command line
flags will often put them before the corresponding flags for
PREFIX/include and PREFIX/lib, so the version from outside .buildlink
would be prefered. The other way around is much less likely to be a
problem and normally the expected case. Bump required cwrappers version
for the necessary exact-match feature.
2015-03-15 19:23:26 +00:00
joerg
f86268b244 Use append for IMAKEOPTS and the real path for exec as IMAKE includes
the options.
2014-12-12 10:50:17 +00:00
joerg
81b3b1d8c7 Indexing starts by 1. 2014-12-12 10:12:50 +00:00
joerg
bf5ee61f9f Use LOCALBASE for finding the wrapper binaries, USE_CROSSBASE messes up
PREFIX.
2014-12-10 23:26:21 +00:00
schmonz
8ceb13fcc0 Remove "CC" from CWRAPPERS_ALIASES.cxx.
Motivation: with "USE_CWRAPPERS=yes" on the default case-insensitive
OS X filesystem, linking the wrappers was failing, stopping the
build. For example:

    ===> Creating toolchain wrappers for mess822-0.58nb3
    ln: .../pkgsrc-current/mail/mess822/work/.cwrapper/bin/cc: File exists
    *** Error code 1

    Stop.

I never noticed this with the old wrappers, but they've also been
failing to link "CC" as an alias to "c++"; it's just that the failure
has been silent and I've never noticed a build failure for lack of
a "CC" wrapper, despite there probably never having been such a
wrapper.

Given that jperkin's SmartOS bulk build with this change produced
results similar to last week's non-cwrappers trunk build, we can
conclude that across platforms, the need for a "CC" wrapper is very
limited and we needn't try (and sometimes fail) to create one by
default.
2014-12-10 14:29:21 +00:00
joerg
1adb9bfbc0 Use full path for CC, CXX and FC. 2014-12-09 12:50:24 +00:00
joerg
02894d322c Provide exec_path for cwrappers-20141129 and require that version. 2014-11-29 22:20:40 +00:00
joerg
b533827bce Temporarily increase compat with old wrappers and add
-I${PREFIX}/include.
2014-11-29 00:53:13 +00:00
joerg
7cc798a257 Export CWRAPPERS_CONFIG_DIR directly for now to deal with Makefiles
calling libtool or cc directly. Leave a note to fix those later.
2014-11-29 00:51:56 +00:00
joerg
ac1e5edf7d Drop trivially redundant transforms. 2014-11-27 23:44:10 +00:00
joerg
4d968f774b cwrappers-20141127: Rename environment variable to CWRAPPERS_CONFIG_DIR
for consistency.
2014-11-27 20:36:43 +00:00
joerg
e5d9eab229 Correct libtool depends on factors like USE_LANGUAGES, so pick up
whatever got choosen elsewhere.
2014-11-27 20:34:55 +00:00
joerg
3df24af04d Consistent indentation. 2014-11-27 20:33:58 +00:00
joerg
40da991aae Support wrappee specific transformations and use it to fix imake. 2014-11-27 20:33:32 +00:00
joerg
be4056d757 Allow appending options on a per-wrappee base. 2014-11-27 20:32:41 +00:00
joerg
63663b9704 Fix variable expansion. 2014-11-27 20:31:56 +00:00
joerg
5b77a6d079 Add clang aliases to the list. Will be conditionalized later. 2014-11-25 18:25:58 +00:00
joerg
9581ce26f5 Whitespace 2014-11-25 18:24:32 +00:00
joerg
69ec520b62 generate-cwrapper -> generate-cwrappers 2014-11-25 18:24:12 +00:00
joerg
bc62c0bfcb Mirror old wrapper code and override _LIBTOOL / _SHLIBTOOL only in the
case of USE_LIBTOOL.
2014-11-25 18:23:49 +00:00
joerg
516b42831c Add cwrappers glue as developed during Google's Summer of Code 2007. 2014-11-24 00:32:31 +00:00