| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: bgamari, austin
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D1589
GHC Trac Issues: #10238
|
|
|
|
|
|
|
|
|
|
|
| |
Using `:` as sed-`s`-expr separator is not a good idea on windows, as
this can result in an expression like
's:@INSTALL@:$(subst ../install-sh,E:/msys64/home/foo/ghc/install-sh,@INSTALL@):g'
(note the `E:/` drive component)
Using `|` instead of `:` has less risk of collision with the substitution expression
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: austin, bgamari
Reviewed By: bgamari
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D1494
GHC Trac Issues: #11109
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We only support building GHC on mys2 nowadays, see
https://ghc.haskell.org/trac/ghc/wiki/Building/Preparation/Windows.
This (partially) reverts various commits from a few years ago, among which:
* 5775d5142da227d65fb86994d363eb16841ee642
"Add OSTYPE build-system variable, and use it"
* 3fb8c431824aa2f3bd979e35d1a283546fcfbe74
"Fix building libgmp on cygwin"
* cdbb4720c424500adb57cbbef69721d0b039fa46
"Fix cmd invocation by libffi cuild system on Windows 7 cygwin"
* e8121501ee3549a35e954726ccfd871ac9d51f83
"Fix dblatex and xml* tool detection on Windows"
Reviewed by: austin, Phyx
Differential Revision: https://phabricator.haskell.org/D1155
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Got detected by gentoo's QA preinstall hook:
* RWX --- --- usr/lib/ghc-7.10.1/rts/libffi.so.6.0.2
* RWX --- --- usr/lib/ghc-7.10.1/rts/libffi.so
* RWX --- --- usr/lib/ghc-7.10.1/rts/libffi.so.6
* !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi.a:win32.o
* !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_p.a:win32.o
* !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_l.a:win32.o
* !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_debug.a:win32.o
* !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_thr.a:win32.o
* !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_thr_debug.a:win32.o
* !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_thr_l.a:win32.o
* !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_thr_p.a:win32.o
Signed-off-by: Sergei Trofimovich <siarheit@google.com>
Test Plan: built ghc-7.10.1 binary and checked stacks as NX
Reviewers: rwbarton, hvr, austin
Reviewed By: austin
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D764
GHC Trac Issues: #10208
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes #8976 and #9873 by making use of the Binutils ld.gold
linker explicit whenever the target is linux/ARM or android/ARM.
This does not affect iOS where Apple provides its own linker.
In order to achieve this, we need to add `-fuse-ld=gold` to
the SettingsCCompilerLinkFlags setting and set
SettingsLdCommand to `ld.gold` (or `${target}-ld.gold` when
cross-compiling). In addition, simplifying the use of
`$(CONF_GCC_LINKER_OPTS_STAGEn)`.
This patch was tested by ensuring that the following worked
as expected:
* Native builds on linux/x86_64 (nothing changed).
* Native builds on linux/arm (and uses the gold linker).
* Linux to linux/arm cross compiles (and uses the cross
gold linker).
Contributions by Ben Gamari, Joachim Breitner and Reid Barton.
Reviewers: nomeata, bgamari, austin, rwbarton
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D715
GHC Trac Issues: #8976 #9873
|
|
|
|
|
| |
This should address #9924 as GHC's config.guess/sub versions need to be
up to date anyway.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: austin
Reviewed By: austin
Subscribers: thomie, carter, ezyang, simonmar
Differential Revision: https://phabricator.haskell.org/D370
GHC Trac Issues: #9720
|
|
|
|
|
|
|
|
|
| |
On some systems (depending on gcc multilib configuration) libffi
would install into libffi/build/inst/lib64 even though we configure
it with --libdir=libffi/build/inst/lib. There appears to be no way
to get libffi to install to a predictable directory "out of the box",
so we apply a small patch to Makefile.in. This is the same fix used
in Gentoo's ebuild (https://bugs.gentoo.org/show_bug.cgi?id=462814).
|
| |
|
|
|
|
| |
This means that ghc-tarballs is only needed on Windows
|
|
|
|
|
|
|
|
| |
On Windows, the ranlib in the path may not be the right ranlib (it may
be the 32bit ranlib when we are making a Win64 compiler, or vice-versa).
Therefore we can't leave it up to libffi to detect the right ranlib, but
need to tell it which ranlib to use. This means that we need to find
ranlib even if we don't actually need it ourselves.
|
|
|
|
| |
This fixes a bug with how configure re-execs itself.
|
|
|
|
|
| |
On Windows, we need to keep the DLL called libffi-6.dll (rather than
libffi.dll) or Windows can't find it.
|
|
|
|
|
| |
Fixes the build on platforms that default to using a directory called
lib64. Reported by Gabriel Dos Reis.
|
| |
|
|
|
|
| |
Patchset from Stephen Blackheath <stephen.blackheath@ipwnstudios.com>
|
|
|
|
|
|
| |
* Pass -Irts/dist/build to the C preprocessor to expose libffi headers (ffi.h and ffitarget.h) to foreign import wrappers during the building process of GHC itself.
* Install libffi headers into $(ghcheaderdir) just like any other C headers. Otherwise an installed GHC can't find them when it wants to compile foreign import wrappers.
* Include libffi headers in the bindist for the same reason.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With Windows 7 in a vitrual box VM on OS X, some very odd things happen
with dates and time stamps when SSHing into cygwin. e.g. here the
"Change" time is in the past:
$ date; touch foo; stat foo
Fri Dec 2 16:58:07 GMTST 2011
File: `foo'
Size: 0 Blocks: 0 IO Block: 65536 regular
empty file
Device: 540aba0bh/1409989131d Inode: 562949953592977 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ ian) Gid: ( 513/ None)
Access: 2011-12-02 16:58:07.414457900 +0000
Modify: 2011-12-02 16:58:07.414457900 +0000
Change: 2011-12-02 16:58:03.495141800 +0000
Birth: 2011-12-02 16:57:57.731469900 +0000
And if we copy such a file, then the copy is older (as determined by the
"Modify" time) than the original:
$ date; touch foo; stat foo; cp foo bar; stat bar
Fri Dec 2 16:59:10 GMTST 2011
File: `foo'
Size: 0 Blocks: 0 IO Block: 65536 regular
empty file
Device: 540aba0bh/1409989131d Inode: 1407374883725128 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ ian) Gid: ( 513/ None)
Access: 2011-12-02 16:59:10.118457900 +0000
Modify: 2011-12-02 16:59:10.118457900 +0000
Change: 2011-12-02 16:59:06.189477700 +0000
Birth: 2011-12-02 16:57:57.731469900 +0000
File: `bar'
Size: 0 Blocks: 0 IO Block: 65536 regular
empty file
Device: 540aba0bh/1409989131d Inode: 281474976882512 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ ian) Gid: ( 513/ None)
Access: 2011-12-02 16:59:06.394555800 +0000
Modify: 2011-12-02 16:59:06.394555800 +0000
Change: 2011-12-02 16:59:06.395532400 +0000
Birth: 2011-12-02 16:58:40.921899600 +0000
This means that make thinks that things are out of date when it
shouldn't, so reinvokes itself repeatedly until the MAKE_RESTARTS
infinite-recursion test triggers.
The touchy program, like most other programs, creates files with both
Modify and Change in the past, which is still a little odd, but is
consistent, so doesn't break make.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
We avoid calling "rm -rf" with no file arguments; this fixes cleaning
on Solaris, where that fails.
We also check for suspicious arguments: anything containing "..",
starting "/", or containing a "*" (you need to call $(wildcard ...)
yourself now if you really want globbing). This should make things
a little safer.
|
| |
|
|
|
|
|
| |
iWe were adding c:/... to $PATH, but : is the separator
in $PATH.
|
| |
|
| |
|
|
|
|
|
|
|
| |
We now put the libffi objects into the RTS library, rather than trying
to mangle libffi into being a ghc package itself. It would be nicer to
make it a separate library (but not a ghc package), but for now
hopefully this will get the build going through on Windows again.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This allows different gcc's to be used when building different stages,
which we need to do when cross-compiling.
|
|
|
|
|
|
|
|
|
| |
We were doing
echo $(HOSTPLATFORM) | sed 's/i[567]86/i486/g'
but the only x86 value HOSTPLATFORM can have is i386.
We now tell libffi its build platform again, but we now tell it it's
$(BUILDPLATFORM) rather than $(HOSTPLATFORM).
|
|
|
|
|
| |
The value --build was set to broke cross-compilier builds, and isn't
needed for regular builds.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch unbreaks ghci on GRSEC kernels hardened with
TPE (Trusted Path Execution) protection.
TPE forbids mmap('rwx') files opened for writes:
fd = open (a_file_in_tmp, O_RDWR);
mmap (..., PROT_READ | PROT_WRITE | PROT_EXEC, fd);
while allows anonymous RWX mappings:
mmap (...MAP_ANONYMOUS , PROT_READ | PROT_WRITE | PROT_EXEC, -1);
Thanks to klondike for finding it out.
The result of a horrible typo.
(unreleased yet) upstream also has the patch:
http://github.com/atgreen/libffi/commit/eaf444eabc4c78703c0f98ac0197b1619c1b1bef
|
| |
|
|
|
|
|
| |
As far as I can see this has been wrong for some time, but only bit
recently.
|
|
|
|
|
|
|
|
|
|
| |
Fixes a rare race when both libHSffi.a and libHSffi_p.a were being built
at the same time:
"cp" libffi/dist-install/build/libffi.a libffi/dist-install/build/libHSffi.a
"cp" libffi/dist-install/build/libffi.a libffi/dist-install/build/libHSffi.a
"cp" libffi/dist-install/build/libffi.so libffi/dist-install/build/libHSffi-ghc7.1.20110115.so
cp: cannot create regular file `libffi/dist-install/build/libHSffi.a': File exists
|
| |
|
|
|
|
| |
dist-install/build/ffi.h should have a dependency on ffitarget.h as *_stub.c requires it during the stage-2 build.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
when we think that the libffi build creates them, so they just depend
on the libffi build stamp.
|
|
|
|
|
|
|
|
| |
This fixes a problem with commands like gzip, where if $GZIP is exported
in the environment, then when make runs a command it'll put the Makefile
variable's value in the environment. But gzip treats $GZIP as arguments
for itself, so when we run gzip it thinks we're giving it "gzip" as an
argument.
|
|
|
|
|
|
|
|
|
|
| |
It used to make the build work on cygwin, but now it breaks it instead:
config.status: creating include/Makefile
gawk: ./confLqjohp/subs.awk:1: BEGIN {\r
gawk: ./confLqjohp/subs.awk:1: ^ backslash not last character on line
config.status: error: could not create include/Makefile
make[2]: *** [libffi/stamp.ffi.configure-shared] Error 1
make[1]: *** [all] Error 2
|
|
|
|
| |
We now tell it where to find ld, nm and ar
|