Compare commits

..

No commits in common. "c8" and "c10s" have entirely different histories.
c8 ... c10s

23 changed files with 332 additions and 2476 deletions

View File

@ -1,2 +0,0 @@
a33222646c440826af744ad70447446fb82b74cf SOURCES/ghc-8.2.2-src.tar.xz
ce801cf456b8dacd565ce8df8288b4d90e7317ff SOURCES/llvm-3.9.1.src.tar.xz

2
.gitignore vendored
View File

@ -1,2 +0,0 @@
SOURCES/ghc-8.2.2-src.tar.xz
SOURCES/llvm-3.9.1.src.tar.xz

View File

@ -1,70 +0,0 @@
diff --git a/utils/ghc-pkg/Main.hs b/utils/ghc-pkg/Main.hs
--- a/utils/ghc-pkg/Main.hs
+++ b/utils/ghc-pkg/Main.hs
@@ -1208,7 +1208,18 @@
pkgsCabalFormat = packages db
pkgsGhcCacheFormat :: [PackageCacheFormat]
- pkgsGhcCacheFormat = map convertPackageInfoToCacheFormat pkgsCabalFormat
+ pkgsGhcCacheFormat
+ = map (recomputeValidAbiDeps pkgsCabalFormat) -- Note [Recompute abi-depends]
+ $ map convertPackageInfoToCacheFormat
+ pkgsCabalFormat
+
+ hasAnyAbiDepends :: InstalledPackageInfo -> Bool
+ hasAnyAbiDepends x = length (abiDepends x) > 0
+
+-- -- warn when we find any (possibly-)bogus abi-depends fields;
+-- -- Note [Recompute abi-depends]
+-- when (any hasAnyAbiDepends pkgsCabalFormat) $
+-- infoLn "ignoring (possibly broken) abi-depends field for packages"
when (verbosity > Normal) $
infoLn ("writing cache " ++ filename)
@@ -1231,6 +1242,45 @@
ModuleName
OpenModule
+{- Note [Recompute abi-depends]
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Like most fields, `ghc-pkg` relies on who-ever is performing package
+registration to fill in fields; this includes the `abi-depends` field present
+for the package.
+
+However, this was likely a mistake, and is not very robust; in certain cases,
+versions of Cabal may use bogus abi-depends fields for a package when doing
+builds. Why? Because package database information is aggressively cached; it is
+possible to work Cabal into a situation where it uses a cached version of
+`abi-depends`, rather than the one in the actual database after it has been
+recomputed.
+
+However, there is an easy fix: ghc-pkg /already/ knows the `abi-depends` of a
+package, because they are the ABIs of the packages pointed at by the `depends`
+field. So it can simply look up the abi from the dependencies in the original
+database, and ignore whatever the system registering gave it.
+
+So, instead, we do two things here:
+
+ - We throw away the information for a registered package's `abi-depends` field.
+
+ - We recompute it: we simply look up the unit ID of the package in the original
+ database, and use *its* abi-depends.
+
+See Trac #14381, and Cabal issue #4728.
+
+-}
+
+recomputeValidAbiDeps :: [InstalledPackageInfo] -> PackageCacheFormat -> PackageCacheFormat
+recomputeValidAbiDeps db pkg = pkg { GhcPkg.abiDepends = catMaybes (newAbiDeps) }
+ where
+ newAbiDeps = flip map (GhcPkg.abiDepends pkg) $ \(k, _) ->
+ case filter (\d -> installedUnitId d == k) db of
+ [] -> Nothing
+ [x] -> Just (k, unAbiHash (abiHash x))
+ _ -> Nothing -- ???
+
convertPackageInfoToCacheFormat :: InstalledPackageInfo -> PackageCacheFormat
convertPackageInfoToCacheFormat pkg =
GhcPkg.InstalledPackageInfo {

View File

@ -1,20 +0,0 @@
--- ghc-8.2.2/libraries/Cabal/Cabal/Distribution/Simple/Install.hs~ 2017-05-05 16:51:43.000000000 +0200
+++ ghc-8.2.2/libraries/Cabal/Cabal/Distribution/Simple/Install.hs 2018-01-23 23:05:47.047081056 +0100
@@ -36,7 +36,7 @@
import Distribution.Simple.Utils
( createDirectoryIfMissingVerbose
, installDirectoryContents, installOrdinaryFile, isInSearchPath
- , die', info, noticeNoWrap, warn, matchDirFileGlob )
+ , die', info, noticeNoWrap, warn, matchDirFileGlob, debug )
import Distribution.Simple.Compiler
( CompilerFlavor(..), compilerFlavor )
import Distribution.Simple.Setup
@@ -215,7 +215,7 @@
++ " in " ++ binPref)
inPath <- isInSearchPath binPref
when (not inPath) $
- warn verbosity ("The directory " ++ binPref
+ debug verbosity ("The directory " ++ binPref
++ " is not in the system search path.")
case compilerFlavor (compiler lbi) of
GHC -> GHC.installExe verbosity lbi binPref buildPref progFix pkg_descr exe

View File

@ -1,43 +0,0 @@
This is an attempt to make GHC build reproducible. The name of .c files may end
up in the resulting binary (in the debug section), but not the directory.
Instead of using the process id, create a hash from the command line arguments,
and assume that is going to be unique.
Index: ghc-8.0.2/compiler/main/SysTools.hs
===================================================================
--- ghc-8.0.2.orig/compiler/main/SysTools.hs
+++ ghc-8.0.2/compiler/main/SysTools.hs
@@ -65,6 +65,7 @@
import Util
import DynFlags
import Exception
+import Fingerprint
import LlvmCodeGen.Base (llvmVersionStr, supportedLlvmVersion)
@@ -1145,8 +1146,8 @@
mapping <- readIORef dir_ref
case Map.lookup tmp_dir mapping of
Nothing -> do
- pid <- getProcessID
- let prefix = tmp_dir </> "ghc" ++ show pid ++ "_"
+ pid <- getStableProcessID
+ let prefix = tmp_dir </> "ghc" ++ pid ++ "_"
mask_ $ mkTempDir prefix
Just dir -> return dir
where
@@ -1562,6 +1563,13 @@
getProcessID = System.Posix.Internals.c_getpid >>= return . fromIntegral
#endif
+-- Debian-specific hack to get reproducible output, by not using the "random"
+-- pid, but rather something determinisic
+getStableProcessID :: IO String
+getStableProcessID = do
+ args <- getArgs
+ return $ take 4 $ show $ fingerprintString $ unwords args
+
-- Divvy up text stream into lines, taking platform dependent
-- line termination into account.
linesPlatform :: String -> [String]

View File

@ -1,27 +0,0 @@
Description: Use native x86_64 instructions on x32
This patch enables a few native 64-bit integer instructions
on x32 which are available on this architecture despite using
32-bit pointers. These instructions are present on x86_64 but
not on x86 and ghc checks the size of (void *) to determine
that. This method fails on x32 since despite using 32-bit
pointers and hence sizeof(void *) == 4, it still uses the
full x86_64 instruction set and software-emulated variants
of the aforementioned 64-bit integer instructions are
therefore not present in the toolchain which will make ghc
fail to build on x32.
See: https://ghc.haskell.org/trac/ghc/ticket/11571
.
Index: ghc-8.0.2/rts/RtsSymbols.c
===================================================================
--- ghc-8.0.2.orig/rts/RtsSymbols.c
+++ ghc-8.0.2/rts/RtsSymbols.c
@@ -857,7 +857,7 @@
// 64-bit support functions in libgcc.a
-#if defined(__GNUC__) && SIZEOF_VOID_P <= 4 && !defined(_ABIN32)
+#if defined(__GNUC__) && SIZEOF_VOID_P <= 4 && !defined(_ABIN32) && !(defined(__x86_64__) && defined(__ILP32__))
#define RTS_LIBGCC_SYMBOLS \
SymI_NeedsProto(__divdi3) \
SymI_NeedsProto(__udivdi3) \

View File

@ -1,11 +0,0 @@
--- ghc-7.8.3/aclocal.m4~ 2014-07-10 13:27:16.000000000 +0900
+++ ghc-7.8.3/aclocal.m4 2014-11-05 12:19:08.530044128 +0900
@@ -408,7 +408,7 @@
)],
[changequote(, )dnl
ARM_ISA=ARMv7
- ARM_ISA_EXT="[VFPv3,NEON]"
+ ARM_ISA_EXT="[VFPv3D16]"
changequote([, ])dnl
])
])

View File

@ -1,11 +0,0 @@
--- ghc-8.2.2/configure.ac~ 2017-11-21 05:22:42.000000000 +0900
+++ ghc-8.2.2/configure.ac 2018-05-28 12:37:35.296728423 +0900
@@ -745,7 +745,7 @@
AC_CACHE_CHECK([for version of sphinx-build], fp_cv_sphinx_version,
changequote(, )dnl
[if test -n "$SPHINXBUILD"; then
- fp_cv_sphinx_version=`"$SPHINXBUILD" --version 2>&1 | sed 's/Sphinx\( (sphinx-build)\)\? v\?\([0-9]\.[0-9]\.[0-9]\)/\2/' | head -n1`;
+ fp_cv_sphinx_version=`"$SPHINXBUILD" --version 2>&1 | sed 's/.* v\?\([0-9]\.[0-9]\.[0-9]\)/\1/' | head -n1`;
fi;
changequote([, ])dnl
])

View File

@ -1,38 +0,0 @@
#!/bin/sh
LOCKFILE=/var/lock/ghc-doc-index.lock
# the lockfile is not meant to be perfect, it's just in case
# two cron scripts get run close to each other to keep
# them from stepping on each other's toes.
if [ -f $LOCKFILE ]; then
echo "Locked with $LOCKFILE"
exit 0
fi
if [ "$(id -u)" != "0" ]; then
echo Need to be root!
exit 1
fi
trap "{ rm -f $LOCKFILE ; exit 255; }" EXIT
touch $LOCKFILE
PKGDIRCACHE=/var/lib/ghc/pkg-dir.cache
LISTING="env LANG=C ls -dl"
# only re-index ghc docs when there are changes
cd /usr/share/doc/ghc/html/libraries
if [ -r "$PKGDIRCACHE" ]; then
$LISTING */ > $PKGDIRCACHE.new
DIR_DIFF=$(diff $PKGDIRCACHE $PKGDIRCACHE.new)
else
$LISTING */ > $PKGDIRCACHE
fi
if [ -x "gen_contents_index" -a ! -r "$PKGDIRCACHE.new" -o -n "$DIR_DIFF" ]; then
./gen_contents_index
fi
if [ -f $PKGDIRCACHE.new ]; then
mv -f $PKGDIRCACHE.new $PKGDIRCACHE
fi

View File

@ -1,9 +0,0 @@
#! /bin/bash
# updates the library documentation index after updates
# This can be disabled by uninstalling ghc-doc-index
# or adding ghc-doc-index to "./jobs-deny".
/usr/bin/ghc-doc-index
exit 0

View File

@ -1,10 +0,0 @@
--- ghc-7.6.3/libraries/gen_contents_index~ 2013-04-19 06:22:46.000000000 +0900
+++ ghc-7.6.3/libraries/gen_contents_index 2013-04-22 12:07:48.922152864 +0900
@@ -60,6 +60,6 @@
done
else
- HADDOCK=../../../../../bin/haddock
+ HADDOCK=/usr/bin/haddock
# We don't want the GHC API to swamp the index
HADDOCK_FILES=`ls -1 */*.haddock | grep -v '/ghc\.haddock' | sort`
HADDOCK_ARGS="-p prologue.txt"

View File

@ -1,83 +0,0 @@
From 417001588d232151050db2d32df443e2d073ebbf Mon Sep 17 00:00:00 2001
From: Valentin Churavy <v.churavy@gmail.com>
Date: Fri, 21 Oct 2016 17:25:04 +0900
Subject: [PATCH] Fix llvm-shlib cmake build
Summary:
This fixes a few things that used to work with a Makefile build, but were broken in cmake.
1. Treat MINGW like a Linux system.
2. The shlib should never contain other shared libraries.
Subscribers: beanz, mgorny
Differential Revision: https://reviews.llvm.org/D25865
---
tools/llvm-shlib/CMakeLists.txt | 42 ++++++++++++++++++++---------------------
1 file changed, 20 insertions(+), 22 deletions(-)
diff --git a/tools/llvm-shlib/CMakeLists.txt b/tools/llvm-shlib/CMakeLists.txt
index 3fe672d..edadb82 100644
--- a/tools/llvm-shlib/CMakeLists.txt
+++ b/tools/llvm-shlib/CMakeLists.txt
@@ -8,29 +8,27 @@ set(SOURCES
llvm_map_components_to_libnames(LIB_NAMES ${LLVM_DYLIB_COMPONENTS})
-if(LLVM_LINK_LLVM_DYLIB)
- if(LLVM_DYLIB_EXPORTED_SYMBOL_FILE)
- message(WARNING "Using LLVM_LINK_LLVM_DYLIB with LLVM_DYLIB_EXPORTED_SYMBOL_FILE may not work. Use at your own risk.")
- endif()
-
- # libLLVM.so should not have any dependencies on any other LLVM
- # shared libraries. When using the "all" pseudo-component,
- # LLVM_AVAILABLE_LIBS is added to the dependencies, which may
- # contain shared libraries (e.g. libLTO).
- #
- # Also exclude libLLVMTableGen for the following reasons:
- # - it is only used by internal *-tblgen utilities;
- # - it pollutes the global options space.
- foreach(lib ${LIB_NAMES})
- get_target_property(t ${lib} TYPE)
- if("${lib}" STREQUAL "LLVMTableGen")
- elseif("x${t}" STREQUAL "xSTATIC_LIBRARY")
- list(APPEND FILTERED_LIB_NAMES ${lib})
- endif()
- endforeach()
- set(LIB_NAMES ${FILTERED_LIB_NAMES})
+if(LLVM_LINK_LLVM_DYLIB AND LLVM_DYLIB_EXPORTED_SYMBOL_FILE)
+ message(WARNING "Using LLVM_LINK_LLVM_DYLIB with LLVM_DYLIB_EXPORTED_SYMBOL_FILE may not work. Use at your own risk.")
endif()
+# libLLVM.so should not have any dependencies on any other LLVM
+# shared libraries. When using the "all" pseudo-component,
+# LLVM_AVAILABLE_LIBS is added to the dependencies, which may
+# contain shared libraries (e.g. libLTO).
+#
+# Also exclude libLLVMTableGen for the following reasons:
+# - it is only used by internal *-tblgen utilities;
+# - it pollutes the global options space.
+foreach(lib ${LIB_NAMES})
+ get_target_property(t ${lib} TYPE)
+ if("${lib}" STREQUAL "LLVMTableGen")
+ elseif("x${t}" STREQUAL "xSTATIC_LIBRARY")
+ list(APPEND FILTERED_LIB_NAMES ${lib})
+ endif()
+endforeach()
+set(LIB_NAMES ${FILTERED_LIB_NAMES})
+
if(LLVM_DYLIB_EXPORTED_SYMBOL_FILE)
set(LLVM_EXPORTED_SYMBOL_FILE ${LLVM_DYLIB_EXPORTED_SYMBOL_FILE})
add_custom_target(libLLVMExports DEPENDS ${LLVM_EXPORTED_SYMBOL_FILE})
@@ -39,7 +37,7 @@ endif()
add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB SONAME ${SOURCES})
list(REMOVE_DUPLICATES LIB_NAMES)
-if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") # FIXME: It should be "GNU ld for elf"
+if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux" OR MINGW) # FIXME: It should be "GNU ld for elf"
# GNU ld doesn't resolve symbols in the version script.
set(LIB_NAMES -Wl,--whole-archive ${LIB_NAMES} -Wl,--no-whole-archive)
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
--
2.10.1

View File

@ -1,392 +0,0 @@
diff -up llvm-3.9.1.src/bindings/ocaml/backends/CMakeLists.txt.instdirs llvm-3.9.1.src/bindings/ocaml/backends/CMakeLists.txt
--- llvm-3.9.1.src/bindings/ocaml/backends/CMakeLists.txt.instdirs 2014-12-29 20:24:07.000000000 -0700
+++ llvm-3.9.1.src/bindings/ocaml/backends/CMakeLists.txt 2017-02-13 13:36:43.999154756 -0700
@@ -23,5 +23,5 @@ foreach(TARGET ${LLVM_TARGETS_TO_BUILD})
"${LLVM_LIBRARY_DIR}/ocaml/META.llvm_${TARGET}")
install(FILES "${LLVM_LIBRARY_DIR}/ocaml/META.llvm_${TARGET}"
- DESTINATION lib/ocaml)
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/ocaml)
endforeach()
diff -up llvm-3.9.1.src/bindings/ocaml/llvm/CMakeLists.txt.instdirs llvm-3.9.1.src/bindings/ocaml/llvm/CMakeLists.txt
--- llvm-3.9.1.src/bindings/ocaml/llvm/CMakeLists.txt.instdirs 2014-12-29 20:24:07.000000000 -0700
+++ llvm-3.9.1.src/bindings/ocaml/llvm/CMakeLists.txt 2017-02-13 13:36:43.999154756 -0700
@@ -8,4 +8,4 @@ configure_file(
"${LLVM_LIBRARY_DIR}/ocaml/META.llvm")
install(FILES "${LLVM_LIBRARY_DIR}/ocaml/META.llvm"
- DESTINATION lib/ocaml)
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/ocaml)
diff -up llvm-3.9.1.src/CMakeLists.txt.instdirs llvm-3.9.1.src/CMakeLists.txt
--- llvm-3.9.1.src/CMakeLists.txt.instdirs 2016-09-13 07:44:50.000000000 -0600
+++ llvm-3.9.1.src/CMakeLists.txt 2017-02-13 13:36:44.003154733 -0700
@@ -194,13 +194,15 @@ if (CMAKE_BUILD_TYPE AND
endif()
set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" )
-
-set(LLVM_TOOLS_INSTALL_DIR "bin" CACHE STRING "Path for binary subdirectory (defaults to 'bin')")
-mark_as_advanced(LLVM_TOOLS_INSTALL_DIR)
+set(CMAKE_INSTALL_BINDIR bin CACHE STRING "Path for binary subdirectory relative to prefix (defaults to 'bin')" )
+set(CMAKE_INSTALL_LIBDIR lib${LLVM_LIBDIR_SUFFIX} CACHE STRING "Path for library subdirectory (defaults to 'lib${LLVM_LIBDIR_SUFFIX}'" )
+set(CMAKE_INSTALL_INCLUDEDIR include CACHE STRING "Path for include subdirectory relative to prefix (defaults to 'include'" )
+set(CMAKE_INSTALL_DOCDIR share/doc/${project} CACHE STRING "Path for documentation subdirectory relative to prefix (defaults to 'share/doc/${project}')" )
+set(CMAKE_INSTALL_MANDIR share/man CACHE STRING "Path for manpages subdirectory relative to prefix (defaults to 'share/man')" )
# They are used as destination of target generators.
-set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
-set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
+set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${CMAKE_INSTALL_BINDIR})
+set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${CMAKE_INSTALL_LIBDIR})
if(WIN32 OR CYGWIN)
# DLL platform -- put DLLs into bin.
set(LLVM_SHLIB_OUTPUT_INTDIR ${LLVM_RUNTIME_OUTPUT_INTDIR})
@@ -613,8 +615,8 @@ configure_file(
# They are not referenced. See set_output_directory().
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/bin )
-set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} )
-set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} )
+set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR} )
+set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR} )
set(CMAKE_BUILD_WITH_INSTALL_RPATH ON)
if (APPLE)
@@ -622,7 +624,7 @@ if (APPLE)
set(CMAKE_INSTALL_RPATH "@executable_path/../lib")
else(UNIX)
if(NOT DEFINED CMAKE_INSTALL_RPATH)
- set(CMAKE_INSTALL_RPATH "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}")
+ set(CMAKE_INSTALL_RPATH "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}")
if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,origin")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,origin")
@@ -799,7 +801,7 @@ add_subdirectory(cmake/modules)
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
install(DIRECTORY include/llvm include/llvm-c
- DESTINATION include
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
COMPONENT llvm-headers
FILES_MATCHING
PATTERN "*.def"
@@ -811,7 +813,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
)
install(DIRECTORY ${LLVM_INCLUDE_DIR}/llvm
- DESTINATION include
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
COMPONENT llvm-headers
FILES_MATCHING
PATTERN "*.def"
diff -up llvm-3.9.1.src/cmake/modules/AddLLVM.cmake.instdirs llvm-3.9.1.src/cmake/modules/AddLLVM.cmake
--- llvm-3.9.1.src/cmake/modules/AddLLVM.cmake.instdirs 2016-07-09 20:43:47.000000000 -0600
+++ llvm-3.9.1.src/cmake/modules/AddLLVM.cmake 2017-02-13 13:36:44.012154680 -0700
@@ -546,7 +558,7 @@ macro(add_llvm_library name)
set_target_properties( ${name} PROPERTIES EXCLUDE_FROM_ALL ON)
elseif(NOT _is_gtest)
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LTO")
- set(install_dir lib${LLVM_LIBDIR_SUFFIX})
+ set(install_dir ${CMAKE_INSTALL_LIBDIR})
if(ARG_SHARED OR BUILD_SHARED_LIBS)
if(WIN32 OR CYGWIN OR MINGW)
set(install_type RUNTIME)
@@ -590,12 +602,12 @@ macro(add_llvm_loadable_module name)
# DLL platform
set(dlldir "bin")
else()
- set(dlldir "lib${LLVM_LIBDIR_SUFFIX}")
+ set(dlldir "${CMAKE_INSTALL_LIBDIR}")
endif()
install(TARGETS ${name}
EXPORT LLVMExports
LIBRARY DESTINATION ${dlldir}
- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
endif()
@@ -770,7 +782,7 @@ macro(add_llvm_tool name)
if( LLVM_BUILD_TOOLS )
install(TARGETS ${name}
EXPORT LLVMExports
- RUNTIME DESTINATION ${LLVM_TOOLS_INSTALL_DIR}
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
COMPONENT ${name})
if (NOT CMAKE_CONFIGURATION_TYPES)
@@ -795,7 +807,7 @@ macro(add_llvm_example name)
endif()
add_llvm_executable(${name} ${ARGN})
if( LLVM_BUILD_EXAMPLES )
- install(TARGETS ${name} RUNTIME DESTINATION examples)
+ install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples)
endif()
set_target_properties(${name} PROPERTIES FOLDER "Examples")
endmacro(add_llvm_example name)
@@ -811,7 +823,7 @@ macro(add_llvm_utility name)
set_target_properties(${name} PROPERTIES FOLDER "Utils")
if( LLVM_INSTALL_UTILS AND LLVM_BUILD_UTILS )
install (TARGETS ${name}
- RUNTIME DESTINATION bin
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
COMPONENT ${name})
if (NOT CMAKE_CONFIGURATION_TYPES)
add_custom_target(install-${name}
@@ -1173,7 +1185,7 @@ function(llvm_install_library_symlink na
set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX})
set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX})
- set(output_dir lib${LLVM_LIBDIR_SUFFIX})
+ set(output_dir ${CMAKE_INSTALL_LIBDIR})
if(WIN32 AND "${type}" STREQUAL "SHARED")
set(output_dir bin)
endif()
@@ -1210,7 +1222,7 @@ function(llvm_install_symlink name dest)
set(full_dest ${dest}${CMAKE_EXECUTABLE_SUFFIX})
install(SCRIPT ${INSTALL_SYMLINK}
- CODE "install_symlink(${full_name} ${full_dest} ${LLVM_TOOLS_INSTALL_DIR})"
+ CODE "install_symlink(${full_name} ${full_dest} ${CMAKE_INSTALL_BINDIR})"
COMPONENT ${component})
if (NOT CMAKE_CONFIGURATION_TYPES AND NOT ARG_ALWAYS_GENERATE)
diff -up llvm-3.9.1.src/cmake/modules/AddOCaml.cmake.instdirs llvm-3.9.1.src/cmake/modules/AddOCaml.cmake
--- llvm-3.9.1.src/cmake/modules/AddOCaml.cmake.instdirs 2016-06-21 17:10:37.000000000 -0600
+++ llvm-3.9.1.src/cmake/modules/AddOCaml.cmake 2017-02-13 13:36:44.001154744 -0700
@@ -189,12 +189,12 @@ function(add_ocaml_library name)
endforeach()
install(FILES ${install_files}
- DESTINATION lib/ocaml)
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/ocaml)
install(FILES ${install_shlibs}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
GROUP_READ GROUP_EXECUTE
WORLD_READ WORLD_EXECUTE
- DESTINATION lib/ocaml)
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/ocaml)
foreach( install_file ${install_files} ${install_shlibs} )
get_filename_component(filename "${install_file}" NAME)
diff -up llvm-3.9.1.src/cmake/modules/AddSphinxTarget.cmake.instdirs llvm-3.9.1.src/cmake/modules/AddSphinxTarget.cmake
--- llvm-3.9.1.src/cmake/modules/AddSphinxTarget.cmake.instdirs 2014-08-14 05:57:16.000000000 -0600
+++ llvm-3.9.1.src/cmake/modules/AddSphinxTarget.cmake 2017-02-13 13:36:44.001154744 -0700
@@ -50,11 +50,11 @@ function (add_sphinx_target builder proj
if (builder STREQUAL man)
# FIXME: We might not ship all the tools that these man pages describe
install(DIRECTORY "${SPHINX_BUILD_DIR}/" # Slash indicates contents of
- DESTINATION share/man/man1)
+ DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
elseif (builder STREQUAL html)
install(DIRECTORY "${SPHINX_BUILD_DIR}"
- DESTINATION "share/doc/${project}")
+ DESTINATION ${CMAKE_INSTALL_DOCDIR})
else()
message(WARNING Installation of ${builder} not supported)
endif()
diff -up llvm-3.9.1.src/cmake/modules/CMakeLists.txt.instdirs llvm-3.9.1.src/cmake/modules/CMakeLists.txt
--- llvm-3.9.1.src/cmake/modules/CMakeLists.txt.instdirs 2017-02-13 13:36:43.995154779 -0700
+++ llvm-3.9.1.src/cmake/modules/CMakeLists.txt 2017-02-13 13:40:40.508732673 -0700
@@ -1,4 +1,4 @@
-set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
+set(LLVM_INSTALL_PACKAGE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/llvm CACHE STRING "Path for CMake subdirectory (defaults to 'cmake/llvm')")
set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
get_property(LLVM_EXPORTS GLOBAL PROPERTY LLVM_EXPORTS)
@@ -49,20 +49,12 @@ file(COPY .
# Generate LLVMConfig.cmake for the install tree.
set(LLVM_CONFIG_CODE "
-# Compute the installation prefix from this LLVMConfig.cmake file location.
-get_filename_component(LLVM_INSTALL_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)")
-# Construct the proper number of get_filename_component(... PATH)
-# calls to compute the installation prefix.
-string(REGEX REPLACE "/" ";" _count "${LLVM_INSTALL_PACKAGE_DIR}")
-foreach(p ${_count})
- set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE}
-get_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)")
-endforeach(p)
-set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/include")
-set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}")
+set(LLVM_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")")
+set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}")
+set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}")
set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}")
-set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin")
+set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}")
set(LLVM_CONFIG_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMExports.cmake")
configure_file(
LLVMConfig.cmake.in
diff -up llvm-3.9.1.src/cmake/modules/LLVMConfig.cmake.in.instdirs llvm-3.9.1.src/cmake/modules/LLVMConfig.cmake.in
--- llvm-3.9.1.src/cmake/modules/LLVMConfig.cmake.in.instdirs 2016-07-01 08:22:52.000000000 -0600
+++ llvm-3.9.1.src/cmake/modules/LLVMConfig.cmake.in 2017-02-13 13:36:44.002154738 -0700
@@ -59,7 +59,7 @@ set(LLVM_DEFINITIONS "@LLVM_DEFINITIONS@
set(LLVM_CMAKE_DIR "@LLVM_CONFIG_CMAKE_DIR@")
set(LLVM_BINARY_DIR "@LLVM_CONFIG_BINARY_DIR@")
set(LLVM_TOOLS_BINARY_DIR "@LLVM_CONFIG_TOOLS_BINARY_DIR@")
-set(LLVM_TOOLS_INSTALL_DIR "@LLVM_TOOLS_INSTALL_DIR@")
+set(LLVM_TOOLS_INSTALL_DIR "@CMAKE_INSTALL_BINDIR@")
if(NOT TARGET LLVMSupport)
set(LLVM_EXPORTED_TARGETS "@LLVM_EXPORTS@")
diff -up llvm-3.9.1.src/cmake/modules/TableGen.cmake.instdirs llvm-3.9.1.src/cmake/modules/TableGen.cmake
--- llvm-3.9.1.src/cmake/modules/TableGen.cmake.instdirs 2016-06-08 15:19:26.000000000 -0600
+++ llvm-3.9.1.src/cmake/modules/TableGen.cmake 2017-02-13 13:47:59.832154520 -0700
@@ -6,7 +6,6 @@ function(tablegen project ofn)
# Validate calling context.
foreach(v
${project}_TABLEGEN_EXE
- LLVM_MAIN_SRC_DIR
LLVM_MAIN_INCLUDE_DIR
)
if(NOT ${v})
@@ -23,10 +22,14 @@ function(tablegen project ofn)
set(LLVM_TARGET_DEFINITIONS_ABSOLUTE
${CMAKE_CURRENT_SOURCE_DIR}/${LLVM_TARGET_DEFINITIONS})
endif()
+ if (LLVM_MAIN_SRC_DIR)
+ set(TABLEGEN_INCLUDES -I ${LLVM_MAIN_SRC_DIR}/lib/Target)
+ endif()
+ set(TABLEGEN_INCLUDES ${TABLEGEN_INCLUDES} -I ${LLVM_MAIN_INCLUDE_DIR})
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${ofn}.tmp
# Generate tablegen output in a temporary file.
COMMAND ${${project}_TABLEGEN_EXE} ${ARGN} -I ${CMAKE_CURRENT_SOURCE_DIR}
- -I ${LLVM_MAIN_SRC_DIR}/lib/Target -I ${LLVM_MAIN_INCLUDE_DIR}
+ ${TABLEGEN_INCLUDES}
${LLVM_TARGET_DEFINITIONS_ABSOLUTE}
-o ${CMAKE_CURRENT_BINARY_DIR}/${ofn}.tmp
# The file in LLVM_TARGET_DEFINITIONS may be not in the current
@@ -141,7 +144,7 @@ macro(add_tablegen target project)
if (${project} STREQUAL LLVM AND NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
install(TARGETS ${target}
EXPORT LLVMExports
- RUNTIME DESTINATION ${LLVM_TOOLS_INSTALL_DIR})
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
endif()
set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${target})
endmacro()
diff -up llvm-3.9.1.src/docs/CMakeLists.txt.instdirs llvm-3.9.1.src/docs/CMakeLists.txt
--- llvm-3.9.1.src/docs/CMakeLists.txt.instdirs 2015-08-17 17:24:17.000000000 -0600
+++ llvm-3.9.1.src/docs/CMakeLists.txt 2017-02-13 13:36:44.004154727 -0700
@@ -94,7 +94,7 @@ if (LLVM_ENABLE_DOXYGEN)
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doxygen/html
- DESTINATION docs/html)
+ DESTINATION ${CMAKE_INSTALL_DOCDIR}/html)
endif()
endif()
endif()
@@ -155,6 +155,6 @@ if( NOT uses_ocaml LESS 0 )
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ocamldoc/html
- DESTINATION docs/ocaml/html)
+ DESTINATION ${CMAKE_INSTALL_DOCDIR}/ocaml/html)
endif()
endif()
diff -up llvm-3.9.1.src/include/llvm/CMakeLists.txt.instdirs llvm-3.9.1.src/include/llvm/CMakeLists.txt
--- llvm-3.9.1.src/include/llvm/CMakeLists.txt.instdirs 2014-08-13 18:51:47.000000000 -0600
+++ llvm-3.9.1.src/include/llvm/CMakeLists.txt 2017-02-13 13:36:44.004154727 -0700
@@ -3,5 +3,5 @@ add_subdirectory(IR)
# If we're doing an out-of-tree build, copy a module map for generated
# header files into the build area.
if (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
- configure_file(module.modulemap.build module.modulemap COPYONLY)
+ configure_file(module.modulemap.build ${LLVM_INCLUDE_DIR}/module.modulemap COPYONLY)
endif (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
diff -up llvm-3.9.1.src/tools/llvm-config/BuildVariables.inc.in.instdirs llvm-3.9.1.src/tools/llvm-config/BuildVariables.inc.in
--- llvm-3.9.1.src/tools/llvm-config/BuildVariables.inc.in.instdirs 2016-03-07 17:02:50.000000000 -0700
+++ llvm-3.9.1.src/tools/llvm-config/BuildVariables.inc.in 2017-02-13 13:36:44.005154721 -0700
@@ -23,7 +23,9 @@
#define LLVM_LDFLAGS "@LLVM_LDFLAGS@"
#define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@"
#define LLVM_BUILDMODE "@LLVM_BUILDMODE@"
-#define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@"
+#define LLVM_BINARY_DIR "@CMAKE_INSTALL_BINDIR@"
+#define LLVM_LIBRARY_DIR "@CMAKE_INSTALL_LIBDIR@"
+#define LLVM_INCLUDE_DIR "@CMAKE_INSTALL_INCLUDEDIR@"
#define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@"
#define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@"
#define LLVM_BUILD_SYSTEM "@LLVM_BUILD_SYSTEM@"
diff -up llvm-3.9.1.src/tools/llvm-config/llvm-config.cpp.instdirs llvm-3.9.1.src/tools/llvm-config/llvm-config.cpp
--- llvm-3.9.1.src/tools/llvm-config/llvm-config.cpp.instdirs 2016-03-14 15:39:58.000000000 -0600
+++ llvm-3.9.1.src/tools/llvm-config/llvm-config.cpp 2017-02-13 13:36:44.006154715 -0700
@@ -290,7 +290,7 @@ int main(int argc, char **argv) {
DevelopmentTreeLayout = CMakeStyle;
ActiveObjRoot = LLVM_OBJ_ROOT;
} else if (sys::fs::equivalent(CurrentExecPrefix,
- Twine(LLVM_OBJ_ROOT) + "/bin")) {
+ Twine(LLVM_OBJ_ROOT) + "/" + LLVM_BINARY_DIR)) {
IsInDevelopmentTree = true;
DevelopmentTreeLayout = CMakeBuildModeStyle;
ActiveObjRoot = LLVM_OBJ_ROOT;
@@ -304,32 +304,32 @@ int main(int argc, char **argv) {
std::string ActivePrefix, ActiveBinDir, ActiveIncludeDir, ActiveLibDir;
std::string ActiveIncludeOption;
if (IsInDevelopmentTree) {
- ActiveIncludeDir = std::string(LLVM_SRC_ROOT) + "/include";
+ ActiveIncludeDir = std::string(LLVM_SRC_ROOT) + "/" + LLVM_INCLUDE_DIR;
ActivePrefix = CurrentExecPrefix;
// CMake organizes the products differently than a normal prefix style
// layout.
switch (DevelopmentTreeLayout) {
case CMakeStyle:
- ActiveBinDir = ActiveObjRoot + "/bin";
- ActiveLibDir = ActiveObjRoot + "/lib" + LLVM_LIBDIR_SUFFIX;
+ ActiveBinDir = ActiveObjRoot + "/" + LLVM_BINARY_DIR;
+ ActiveLibDir = ActiveObjRoot + LLVM_LIBRARY_DIR;
break;
case CMakeBuildModeStyle:
ActivePrefix = ActiveObjRoot;
- ActiveBinDir = ActiveObjRoot + "/bin/" + build_mode;
+ ActiveBinDir = ActiveObjRoot + "/" + LLVM_BINARY_DIR + "/" + build_mode;
ActiveLibDir =
- ActiveObjRoot + "/lib" + LLVM_LIBDIR_SUFFIX + "/" + build_mode;
+ ActiveObjRoot + "/" + LLVM_LIBRARY_DIR + "/" + build_mode;
break;
}
// We need to include files from both the source and object trees.
ActiveIncludeOption =
- ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include");
+ ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/" + LLVM_INCLUDE_DIR);
} else {
ActivePrefix = CurrentExecPrefix;
- ActiveIncludeDir = ActivePrefix + "/include";
- ActiveBinDir = ActivePrefix + "/bin";
- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX;
+ ActiveIncludeDir = ActivePrefix + "/" + LLVM_INCLUDE_DIR;
+ ActiveBinDir = ActivePrefix + "/" + LLVM_BINARY_DIR;
+ ActiveLibDir = ActivePrefix + "/" + LLVM_LIBRARY_DIR;
ActiveIncludeOption = "-I" + ActiveIncludeDir;
}
diff -up llvm-3.9.1.src/tools/llvm-shlib/CMakeLists.txt.instdirs llvm-3.9.1.src/tools/llvm-shlib/CMakeLists.txt
--- llvm-3.9.1.src/tools/llvm-shlib/CMakeLists.txt.instdirs 2016-05-25 22:35:35.000000000 -0600
+++ llvm-3.9.1.src/tools/llvm-shlib/CMakeLists.txt 2017-02-13 13:36:44.065154372 -0700
@@ -68,7 +66,7 @@ if(LLVM_BUILD_LLVM_C_DYLIB)
set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_BINARY_DIR}/libllvm-c.exports)
- set(LIB_DIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
+ set(LIB_DIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${CMAKE_INSTALL_LIBDIR})
set(LIB_NAME ${LIB_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}LLVM)
set(LIB_PATH ${LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
set(LIB_EXPORTS_PATH ${LIB_NAME}.exports)
diff -up llvm-3.9.1.src/tools/lto/CMakeLists.txt.instdirs llvm-3.9.1.src/tools/lto/CMakeLists.txt
--- llvm-3.9.1.src/tools/lto/CMakeLists.txt.instdirs 2016-07-11 21:01:22.000000000 -0600
+++ llvm-3.9.1.src/tools/lto/CMakeLists.txt 2017-02-13 13:36:44.007154709 -0700
@@ -19,7 +19,7 @@ set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CU
add_llvm_library(LTO SHARED ${SOURCES})
install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h
- DESTINATION include/llvm-c
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c
COMPONENT LTO)
if (APPLE)

File diff suppressed because it is too large Load Diff

1
dead.package Normal file
View File

@ -0,0 +1 @@
ghc package is retired on branch c10s for BAKERY-412

View File

@ -0,0 +1,26 @@
Description: Remove hard-coded googleapis font URL
Bug: https://github.com/haskell/haddock/issues/1211
Bug-Debian: https://bugs.debian.org/963690
Index: b/utils/haddock/haddock-api/src/Haddock/Backends/Xhtml.hs
===================================================================
--- a/utils/haddock/haddock-api/src/Haddock/Backends/Xhtml.hs
+++ b/utils/haddock/haddock-api/src/Haddock/Backends/Xhtml.hs
@@ -137,7 +137,7 @@ headHtml docTitle themes mathjax_url bas
, thetype "text/css"
, href (withBaseURL base_url quickJumpCssFile) ]
<< noHtml
- , thelink ! [ rel "stylesheet", thetype "text/css", href fontUrl] << noHtml
+ -- , thelink ! [ rel "stylesheet", thetype "text/css", href fontUrl] << noHtml
, script ! [ src (withBaseURL base_url haddockJsFile)
, emptyAttr "async"
, thetype "text/javascript" ]
@@ -146,7 +146,7 @@ headHtml docTitle themes mathjax_url bas
, script ! [src mjUrl, thetype "text/javascript"] << noHtml
]
where
- fontUrl = "https://fonts.googleapis.com/css?family=PT+Sans:400,400i,700"
+ -- fontUrl = "https://fonts.googleapis.com/css?family=PT+Sans:400,400i,700"
mjUrl = fromMaybe "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_HTMLorMML" mathjax_url
mjConf = unwords [ "MathJax.Hub.Config({"
, "tex2jax: {"

231
haddock.man Normal file
View File

@ -0,0 +1,231 @@
.TH HADDOCK 1 "July 2010" "Haddock, version 2.6.1" "Haddock documentation generator"
.SH NAME
haddock \- documentation tool for annotated Haskell source code
.SH SYNOPSIS
.B haddock
.RI [ options ] " file" ...
.SH DESCRIPTION
This manual page documents briefly the
.B haddock
command.
Extensive documentation is available in various other formats including DVI,
PostScript and HTML; see below.
.PP
.I file
is a filename containing a Haskell source module.
All the modules specified on the command line will be processed together.
When one module refers to an entity in another module being processed, the
documentation will link directly to that entity.
Entities that cannot be found, for example because they are in a module that
is not being processed as part of the current batch, simply will not be
hyperlinked in the generated documentation.
.B haddock
will emit warnings listing all the identifiers it could not resolve.
The modules should not be mutually recursive, as
.B haddock
does not like swimming in circles.
.SH OPTIONS
The programs follow the usual GNU command line syntax, with long
options starting with two dashes (`--').
A summary of options is included below.
For a complete description, see the other documentation.
.TP
\fB\-o \fIDIR\fP, \-\-odir=\fIDIR\fP
directory in which to put the output files
.TP
\fB\-i \fIFILE\fP, \-\-read-interface=\fIFILE\fP
read an interface from
.IR FILE .
.TP
\fB\-D \fIFILE\fP, \-\-dump\-interface=\fIFILE\fP
dump an interface for these modules in
.IR FILE .
.TP
\fB\-l \fIDIR\fP, \-\-lib=\fIDIR\fP
location of Haddock's auxiliary files
.TP
.BR \-h ", " \-\-html
Generate documentation in HTML format.
Several files will be generated into the current directory (or the specified
directory if the
.B \-o
option is given), including the following:
.RS
.TP
.I index.html
The top level page of the documentation:
lists the modules available, using indentation to represent the hierarchy if
the modules are hierarchical.
.TP
.I haddock.css
The stylesheet used by the generated HTML.
Feel free to modify this to change the colors or layout, or even specify
your own stylesheet using the
.B \-\-css
option.
.TP
.I module.html
An HTML page for each module.
.TP
.IR doc-index.html ", " doc-index-XX.html
The index, split into two (functions/constructors and types/classes, as per
Haskell namespaces) and further split alphabetically.
.RE
.TP
.B \-\-hoogle
output for Hoogle
.TP
\fB\-\-html\-help=\fIformat
produce index and table of contents in mshelp, mshelp2 or devhelp format
(with \fI\-h\fP)
.TP
\fB\-\-source\-base=\fPURL
Include links to the source files in the generated documentation, where URL
is the base URL where the source files can be found.
.TP
\fB\-s \fPURL, \fB\-\-source\-module=\fPURL
Include links to the source files in the generated documentation, where URL
is a source code link for each module (using the %{FILE} or %{MODULE} vars).
.TP
\fB\-\-source\-entity=\fPURL
Include links to the source files in the generated documentation, where URL
is a source code link for each entity (using the %{FILE}, %{MODULE} or %{NAME} vars).
.TP
\fB\-\-comments\-base=\fPURL
URL for a comments link on the contents and index pages.
.TP
\fB\-\-comments\-module=\fPURL
URL for a comments link for each module (using the %{MODULE} var).
.TP
\fB\-\-comments\-entity=\fPURL
URL for a comments link for each entity (using the %{FILE}, %{MODULE} or %{NAME} vars).
.TP
.BI \-\-css= FILE
Use the CSS
.I FILE
instead of the default stylesheet that comes with
.B haddock
for HTML output. It should specify certain classes: see the default stylesheet for details.
.TP
\fB\-p \fIFILE\fP, \-\-prologue=\fIFILE\fP
Specify a file containing prologue text.
.TP
\fB\-t \fITITLE\fP, \-\-title=\fITITLE\fP
Use \fITITLE\fP as the page heading for each page in the documentation.
This will normally be the name of the library being documented.
The title should be a plain string (no markup please!).
.TP
\fB\-k \fINAME\fP, \-\-package=\fINAME\fP
Specify the package name (optional).
.TP
.BR \-n ", " \-\-no\-implicit\-prelude
do not assume Prelude is imported
.TP
.BR \-d ", " \-\-debug
Enable extra debugging output.
.TP
.BR \-? ", " \-\-help
Display help.
.TP
.BR \-V ", " \-\-version
Display version.
.TP
.BR \-v ", " \-\-verbose
Verbose status reporting.
.TP
\fB\-\-use\-contents=\fPURL
Use a separately-generated HTML contents page.
.TP
.B \-\-gen\-contents
Generate an HTML contents from specified interfaces.
.TP
\fB\-\-use\-index=\fPURL
Use a separately-generated HTML index.
.TP
.B \-\-gen\-index
Generate an HTML index from specified interfaces.
.TP
.B \-\-ignore\-all\-exports
Behave as if all modules have the ignore-exports atribute
.TP
\fB\-\-hide=\fIMODULE
Behave as if \fIMODULE\fP has the hide attribute.
.TP
\fB\-\-use\-package=\fIPACKAGE
The modules being processed depend on \fIPACKAGE\fP.
.SH FILES
.I /usr/bin/haddock
.br
.I /usr/share/haddock-2.6.1/html/plus.gif
.br
.I /usr/share/haddock-2.6.1/html/minus.gif
.br
.I /usr/share/haddock-2.6.1/html/haskell_icon.gif
.br
.I /usr/share/haddock-2.6.1/html/haddock.js
.br
.I /usr/share/haddock-2.6.1/html/haddock.css
.br
.I /usr/share/haddock-2.6.1/html/haddock-DEBUG.css
.SH SEE ALSO
.IR /usr/share/doc/haddock/ ,
.br
the Haddock homepage
.UR http://haskell.org/haddock/
(http://haskell.org/haddock/)
.UE
.SH COPYRIGHT
Haddock version 2.6.1
Copyright 2006-2010 Simon Marlow <simonmar@microsoft.com>, Dawid Waern <david.waern@gmail.com>.
All rights reserved.
.SH AUTHOR
This manual page was written by Michael Weber <michaelw@debian.org>
for the Debian GNU/Linux system (but may be used by others).
.\" Local variables:
.\" mode: nroff
.\" End:

10
libraries-versions.sh Executable file
View File

@ -0,0 +1,10 @@
#!/bin/sh
if [ ! -d libraries ]; then
echo Is CWD a ghc source tree?
exit 1
fi
cd libraries
grep -i ^version: Cabal/Cabal/Cabal.cabal containers/containers/containers.cabal template-haskell/template-haskell.cabal.in */*.cabal | grep -v -e "\(Win32\|gmp.old\|gmp2\|integer-simple\)" | sed -e "s!/.*: \+!-!" | sort

45
runghc.man Normal file
View File

@ -0,0 +1,45 @@
.TH RUNGHC 1 "28 NOVEMBER 2007"
.SH NAME
runghc \- program to run Haskell programs without first having to compile them.
.SH SYNOPSIS
.B runghc
.RI
[runghc|flags] [GHC|flags] module [program|flags]...
.br
.SH DESCRIPTION
.B runghc
is considered a non-interactive interpreter and part of The Glasgow Haskell Compiler.
.B runghc
is a compiler that automatically runs its results at the end.
.PP
.SH OPTIONS
.TP
the flags are:
.TP
.B \-f
it tells runghc which GHC to use to run the program. If it is not given then runghc will search for GHC in the directories in the system search path. runghc -f /path/to/ghc
.TP
.B \--
runghc will try to work out where the boundaries between [runghc flags] and [GHC flags], and [GHC flags] and module are, but you can use a -- flag if it doesn't get it right. For example, runghc -- -fglasgow-exts Foo
means runghc won't try to use glasgow-exts as the path to GHC, but instead will pass the flag to GHC.
.SH EXAMPLES
.TP
.B runghc foo
.PP
.B runghc -f /path/to/ghc foo
.TP
.B runghc -- -fglasgow-exts Foo
.SH SEE ALSO
.BR ghc (1),
.BR ghci (1).
.br
.SH COPYRIGHT
Copyright 2002, The University Court of the University of Glasgow. All rights reserved.
.SH AUTHOR
This manual page was written by Efrain Valles Pulgar <effie.jayx@gmail.com>. This is free documentation; see the GNU
General Public Licence version 2 or later for copying conditions. There is NO WARRANTY.

2
sources Normal file
View File

@ -0,0 +1,2 @@
SHA512 (ghc-9.2.6-src.tar.xz) = 187e00780b97ef784a01e1caa278d2c5b22d350de7d18d0b4c8c522c2d9e7895f5720ffbf589352ed601c81eee6f10a39cb4a3060e6639cda45494aeaa4f94a0
SHA512 (ghc-9.2.6-src.tar.xz.sig) = df13365e2dabd2459e1df3f624d0f39213a1fdda597274ba96dcf2de44d9bd56106f7438bab3622f55757d12f3b1fec4fdeb865bb34b0bfe0713133aa8799f74

6
tests/smoke/runtest.sh Executable file
View File

@ -0,0 +1,6 @@
#!/bin/sh
set -e
echo 'main = return ()' > test.hs
ghc test.hs && ./test

11
tests/tests.yml Normal file
View File

@ -0,0 +1,11 @@
---
- hosts: localhost
tags:
- classic
roles:
- role: standard-test-basic
required_packages:
- ghc
tests:
- smoke
...