Age | Commit message (Collapse) | Author | Files | Lines |
|
might incur ncurses dependencies on some platforms, and ncurses just bumped
its shlib.
Some packages were bumped twice now, sorry for that.
|
|
having a PKGNAME of p5-*, or depending such a package,
for perl-5.22.0.
|
|
|
|
--with-curses-{includes,libraries}
|
|
These flags are only used for creating static GHCi libraries
(HS*.o). Setting them to ${LDFLAGS} does more harm than good because
our ${LDFLAGS} contains -Wl,* flags. It's true that
../../mk/wrapper/cmd-sink-ld transforms them but those flags will also
be baked into the compiler (see ${WRKSRC}/compiler/ghc.mk) so they
cause problems when used outside the buildlink.
|
|
|
|
|
|
|
|
"capi" instead of "ccall"
In Haskell FFI, "ccall" is actually an interface to C ABI rather than
C API. That is, GHC generates direct references to the symbol even if
it's actually defined as a cpp macro or something like that, because
GHC knows nothing about those macros in foreign headers.
I will later send these patches to the upstream.
|
|
See bootstrap.mk for details.
|
|
merely broken on unlisted platforms, not inappropriate
|
|
They derived from safe bootkits in wip/ghc. See my previous commit for
details.
|
|
|
|
Refactored bootstrap.mk with no semantic changes in this commit. I
will soon upload some of bootkits derived from wip/ghc to LOCAL_PORTS
but only for safe ones. Here's a note about safety:
* NetBSD/amd64, FreeBSD/i386, Darwin/ppc [SAFE]: These kits were built
on my secured private machines under my exclusive control. I'm
planning to upload them.
* Linux/amd64 [UNSAFE]: I built my kit for this one on a machine
shared with my co-workers with root access. I won't upload it.
* NetBSD/i386 [UNSAFE]: I built my kit for this one on an Amazon EC2
instance (although it's private). I won't upload it either.
For other developers, please do not upload any bootkits derived from
unsafe ones mentioned above, because they have some degree of
possibility of being compromised. And please keep in mind that
machines shared with someone or on a cloud hosting service should be
avoided for building bootkits.
|
|
avoid warnings in the rest of the while.
|
|
|
|
We don't want our bootkits to have a run-time dependency on libgcc. In
fact GHC's implementation of Haskell exception handling does not
depend on libgcc's facilities so it is attractive to do the same for
"normal" build... but we can't. This is because Haskell programs may
call C functions via FFI, and those C functions may call C++ functions
in turn, possibly in a different shared library.
But on some platforms, gcc automagically inserts a dependency on a
shared libgcc when -lpthread is given, which is seemingly unavoidable.
|
|
The problem only occurs when $(WhatGccIsCalled) is an absolute path to
the "real" gcc (e.g. "/usr/bin/gcc"), which happens if we run
${WRKSRC}/configure with an option something like
"--with-gcc=/usr/bin/gcc". As long as we use "--with-gcc" with a
command name (i.e. ${CC}, not ${CCPATH}), everything works fine
without any problems.
This is because dtrace(1) executes cpp in a rather weird way: it calls
execvp("/usr/bin/gcc", argv) with argv set to {"gcc", "-E", "-xc",
...}, not {"/usr/bin/gcc", "-E", "-xc", ...}.
When GCC is called that way, it needs to find platform-specific
subprograms by walking through ${PATH}. And if it sees an executable
named "gcc" which in fact isn't actually gcc, it gets confused and
dies with an error:
% cat dtrace-emu.c
#include <unistd.h>
#include <stdio.h>
int main() {
char *argv[] = {"gcc", "-E", NULL};
execvp("/usr/bin/gcc", argv);
return 0;
}
% gcc dtrace-emu.c -o /tmp/gcc
% /tmp/gcc
powerpc-apple-darwin9-gcc-4.0.1: no input files
% PATH=/tmp/gcc /tmp/gcc
gcc: installation problem, cannot exec '/tmp/powerpc-apple-darwin9-gcc-4.0.1':
No such file or directory
And even if the problem should really be addressed, it should be done
in the wrapper framework because dtrace(1) is actually a part of
compiler toolchain.
|
|
See the comment for details.
|
|
|
|
|
|
The "bootstrap" target now prints a message about run-time
dependencies of the bootkit you've just built, something like:
==========================================================================
Done creating ghc-7.6.3-boot-x86_64-unknown-netbsd.tar.xz
in /usr/pkgsrc/lang/ghc7/work
Now you can copy it into /usr/pkgsrc/distfiles/ to use it as your
bootstrap kit. You may want to take a backup in case "lintpkgsrc -r"
removes it.
Your bootstrap kit has the following run-time dependencies:
* curses: native (version/variant unknown)
* iconv: native (version/variant unknown)
==========================================================================
|
|
The installed GHC has already been working without the ld hack. These
changes should only affect the package build so revbump isn't needed.
Makefile (CONFIGURE_ENV):
Refactored with no semantic changes.
Makefile (post-patch):
${WRKSRC}/libraries/base/configure.ac is patched too.
Makefile (CHECK_SHLIBS_SUPPORTED):
Removed the variable as the package now supports it.
Makefile (CHECK_SHLIBS_SKIP):
Added to skip checks for dynamic Haskell libraries. See the comment
for details.
bootstrap.mk (pre-configure):
Use ${CONFIGURE_ENV} when configuring the stage-0 compiler. See the
comment for details.
patches/patch-libraries_base_configure.ac:
Added to prevent {CPP,LD}FLAGS from being clobbered. See the comment
for details. I will send the patch to the upstream in a few days or
weeks (or even months, depending on my busyness).
|
|
* Formerly we were passing
"--with-curses-includes=${BUILDLINK_PREFIX.curses}/include" to
"${WRKSRC}/libraries/terminfo/configure". This is problematic
because pkgsrc devel/ncurses installs headers into
${PREFIX}/include/ncurses, not ${PREFIX}/include, while ghc-cabal
expects "ncurses.h" and "term.h" in ${PREFIX}/include (because we
said so) and then it emits an error. The fix is to use
${BUILDLINK_INCDIRS.curses} instead of "include". Note that this
requires my recent changes to ../../mk/curses.buildlink3.mk (r1.21)
* The "bootstrap" target now uses buildlink wrapper not to pick up
random libraries which happened to be in "${PREFIX}/lib". Bootstrap
binary kits should be linked with a predictable set of libraries.
* The "bootstrap" target now automatically runs through the wrapper
phase. You no longer have to run "${MAKE} patch" manually.
|
|
|
|
discussed with wiz@.
|
|
Bump PKGREVISION.
|
|
Do it for all packages that
* mention perl, or
* have a directory name starting with p5-*, or
* depend on a package starting with p5-
like last time, for 5.18, where this didn't lead to complaints.
Let me know if you have any this time.
|
|
|
|
* Install the libffi libtool archive. Whilst it is unused, it allows
us to automatically determine the shared library suffix.
* Switch the i386 SunOS bootstrap to .xz.
* Use PKG_CC to build lndir to help environments where the compiler is
not in $PATH.
* Apply patch from Alain O'Dea to fix issues with files residing on
read-only file systems.
* Support shared libraries on 64-bit SunOS.
* Fix typo in patches/patch-rts_Linker.c.
Fixes build on SunOS. Bump PKGREVISION.
|
|
noticed by szptvlfn@.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
and let rest parts to be post-configure.
|
|
|
|
condition.
inspired by print-PLIST.
|
|
Bump PKGREVISION.
|
|
|
|
You can use your trusted bootstrap file as your basis.
|
|
defined.
|
|
Based on wip/ghc, mostly worked by phonohawk, with patches from jperkin@.
And some modifications and buit of Bootstrap binaries for 7.6.3 by me.
GHC: The Glasgow Haskell Compiler.
The Glasgow Haskell Compiler is a robust, fully-featured, optimising
compiler for the functional programming language Haskell 98
(http://www.haskell.org). GHC compiles Haskell to either native code
or C. It implements numerous experimental language extensions to
Haskell, including concurrency, a foreign language interface, several
type-system extensions, exceptions, and so on. GHC comes with a
generational garbage collector, a space and time profiler, and a
comprehensive set of libraries.
|