Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ghc for openSUSE:Factory checked in at 2023-04-04 21:25:32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc (Old) and /work/SRC/openSUSE:Factory/.ghc.new.19717 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc" Tue Apr 4 21:25:32 2023 rev:98 rq:1076520 version:9.4.4 Changes: -------- --- /work/SRC/openSUSE:Factory/ghc/ghc.changes 2023-01-23 18:33:30.460701294 +0100 +++ /work/SRC/openSUSE:Factory/.ghc.new.19717/ghc.changes 2023-04-04 21:25:47.307021418 +0200 @@ -1,0 +2,48 @@ +Fri Mar 17 11:09:29 UTC 2023 - OndÅej Súkup <mimi...@gmail.com> + +- build with hadrian +- reintroduced profiling packages +- added man pages: ghc-pkg.man haddock.man runghc.man +- added 9_2_3-bootstrap-sources.tar.gz as hadrian deps +- refreshed patches: + * fix_extlinks.patch + * Disable-unboxed-arrays.patch + * ghc-8.0.2-Cabal-dynlibdir.patch + * ghc-pie.patch +- removed patches: + * ghc-armv7-VFPv3D16--NEON.patch + * buildpath-abi-stability.patch +- added patches: + * ghc-gen_contents_index-haddock-path.patch + * ghc-Cabal-install-PATH-warning.patch + * execstack.patch + * libatomic.patch + * riscv-tntc.patch + * ghc-hadrian-s390x-rts--qg.patch + +------------------------------------------------------------------- +Tue Jan 31 09:37:15 UTC 2023 - Peter Simons <psim...@suse.com> + +- Update to GHC version 9.4.4. + + * %{buildroot}%{ghclibdir}/include is apparently no longer used by + the RTS package. Those files now live in /usr/lib64/ghc-9.4.4/rts/include. + + * find %{buildroot}%{ghc_html_libraries_dir} -name LICENSE -exec rm '{}' ';' + no longer works because the directory doesn't exist at the time + that command is run. + + * The user manual and Haddock documentation is installed into a + different location. For now, we just list the catchall + %{_docdir}/packages/ghc to accept anything. + + * The LICENSE file for Cabal-syntax lives at libraries/Cabal/Cabal-syntax + instead of the expected place libraries/Cabal-syntax. + + * The package system-cxx-std-lib has no LICENSE file. It's not + even a proper package, it's just a configuration file that lists + some compiler and linker flags. To work around the build error + that causes, we just copy some random LICENSE file into the + place where our build would expect it. + +------------------------------------------------------------------- @@ -17,0 +66,5 @@ +Fri Jul 8 11:48:57 UTC 2022 - Andreas Schwab <sch...@suse.de> + +- execstack.patch: add missing stack note + +------------------------------------------------------------------- @@ -34,0 +88,5 @@ +Wed Feb 9 13:50:45 UTC 2022 - Peter Simons <psim...@suse.com> + +- add environ.patch to fix build errors with recent gcc + +------------------------------------------------------------------- Old: ---- buildpath-abi-stability.patch ghc-8.10.7-src.tar.xz ghc-8.10.7-src.tar.xz.sig ghc-armv7-VFPv3D16--NEON.patch New: ---- 9_2_3-bootstrap-sources.tar.gz execstack.patch ghc-9.4.4-src.tar.xz ghc-9.4.4-src.tar.xz.sig ghc-Cabal-install-PATH-warning.patch ghc-gen_contents_index-haddock-path.patch ghc-hadrian-s390x-rts--qg.patch ghc-pkg.man haddock.man libatomic.patch riscv-tntc.patch runghc.man ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc.spec ++++++ ++++ 940 lines (skipped) ++++ between /work/SRC/openSUSE:Factory/ghc/ghc.spec ++++ and /work/SRC/openSUSE:Factory/.ghc.new.19717/ghc.spec ++++++ Disable-unboxed-arrays.patch ++++++ --- /var/tmp/diff_new_pack.aUVMOt/_old 2023-04-04 21:25:48.559028525 +0200 +++ /var/tmp/diff_new_pack.aUVMOt/_new 2023-04-04 21:25:48.563028548 +0200 @@ -1,13 +1,13 @@ -Index: ghc-8.6.1/libraries/containers/containers/include/containers.h +Index: ghc-9.4.4/libraries/containers/containers/include/containers.h =================================================================== ---- ghc-8.6.1.orig/libraries/containers/containers//include/containers.h -+++ ghc-8.6.1/libraries/containers/containers/include/containers.h -@@ -35,7 +35,6 @@ - - #ifdef __GLASGOW_HASKELL__ - # define USE_ST_MONAD 1 +--- ghc-9.4.4.orig/libraries/containers/containers/include/containers.h ++++ ghc-9.4.4/libraries/containers/containers/include/containers.h +@@ -23,7 +23,6 @@ + * Unboxed arrays are broken on big-endian architectures. + * See https://gitlab.haskell.org/ghc/ghc/-/issues/16998 + */ -# define USE_UNBOXED_ARRAYS 1 #endif - #endif + ++++++ _constraints ++++++ --- /var/tmp/diff_new_pack.aUVMOt/_old 2023-04-04 21:25:48.587028685 +0200 +++ /var/tmp/diff_new_pack.aUVMOt/_new 2023-04-04 21:25:48.591028707 +0200 @@ -1,7 +1,7 @@ <constraints> <hardware> <disk> - <size unit="G">12</size> + <size unit="G">16</size> </disk> <physicalmemory> <size unit="G">4</size> @@ -24,7 +24,7 @@ </conditions> <hardware> <physicalmemory> - <size unit="G">20</size> + <size unit="G">32</size> </physicalmemory> </hardware> </overwrite> ++++++ execstack.patch ++++++ >From 3739e565f8fa09b3a31ba8f563c518480585f6f9 Mon Sep 17 00:00:00 2001 From: Andreas Schwab <sch...@suse.de> Date: Sat, 11 Jun 2022 23:29:24 +0200 Subject: [PATCH] RTS: Add stack marker to StgCRunAsm.S Every object file must be properly marked for non-executable stack, even if it contains no code. --- rts/StgCRunAsm.S | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/rts/StgCRunAsm.S b/rts/StgCRunAsm.S index aed3241d12..9216e6c759 100644 --- a/rts/StgCRunAsm.S +++ b/rts/StgCRunAsm.S @@ -66,8 +66,6 @@ StgReturn: addi 12,1,-(8*18) bl _restgpr1_14 b _restfpr_14 - - .section .note.GNU-stack,"",@progbits # else // linux_HOST_OS # error Only Linux support for power64 little endian right now. # endif @@ -231,8 +229,6 @@ StgReturn: .cfi_endproc .size StgReturn, .-StgReturn - .section .note.GNU-stack,"",@progbits - #elif defined(riscv64_HOST_ARCH) # define STACK_FRAME_SIZE (RESERVED_C_STACK_BYTES+208) .text @@ -374,8 +370,11 @@ StgReturn: ret .cfi_endproc .size StgReturn, .-StgReturn - - .section .note.GNU-stack,"",@progbits #endif #endif /* !USE_MINIINTERPRETER */ + +/* mark stack as nonexecutable */ +#if defined(__linux__) && defined(__ELF__) +.section .note.GNU-stack,"",@progbits +#endif -- 2.37.0 ++++++ fix_extlinks.patch ++++++ --- /var/tmp/diff_new_pack.aUVMOt/_old 2023-04-04 21:25:48.615028843 +0200 +++ /var/tmp/diff_new_pack.aUVMOt/_new 2023-04-04 21:25:48.619028865 +0200 @@ -1,7 +1,7 @@ -Index: ghc-8.10.7/docs/users_guide/ghc_config.py.in +Index: ghc-9.4.4/docs/users_guide/ghc_config.py.in =================================================================== ---- ghc-8.10.7.orig/docs/users_guide/ghc_config.py.in -+++ ghc-8.10.7/docs/users_guide/ghc_config.py.in +--- ghc-9.4.4.orig/docs/users_guide/ghc_config.py.in 2022-12-23 16:19:02.000000000 +0000 ++++ ghc-9.4.4/docs/users_guide/ghc_config.py.in 2023-01-30 21:30:24.105048683 +0000 @@ -1,6 +1,6 @@ extlinks = { - 'ghc-ticket': ('https://gitlab.haskell.org/ghc/ghc/issues/%s', '#'), @@ -11,21 +11,21 @@ } libs_base_uri = '../libraries' -Index: ghc-8.10.7/libraries/Cabal/Cabal/doc/conf.py +Index: ghc-9.4.4/libraries/Cabal/doc/conf.py =================================================================== ---- ghc-8.10.7.orig/libraries/Cabal/Cabal/doc/conf.py -+++ ghc-8.10.7/libraries/Cabal/Cabal/doc/conf.py -@@ -24,12 +24,12 @@ master_doc = 'index' +--- ghc-9.4.4.orig/libraries/Cabal/doc/conf.py 2022-12-23 16:19:53.000000000 +0000 ++++ ghc-9.4.4/libraries/Cabal/doc/conf.py 2023-01-30 21:30:53.908929483 +0000 +@@ -28,12 +28,12 @@ master_doc = 'index' # extlinks -- see http://www.sphinx-doc.org/en/stable/ext/extlinks.html extlinks = { - 'issue': ('https://github.com/haskell/cabal/issues/%s', '#'), + 'issue': ('https://github.com/haskell/cabal/issues/%s', '#%s'), -- 'ghc-wiki': ('http://ghc.haskell.org/trac/ghc/wiki/%s', ''), -- 'ghc-ticket': ('http://ghc.haskell.org/trac/ghc/ticket/%s', 'GHC #'), -+ 'ghc-wiki': ('http://ghc.haskell.org/trac/ghc/wiki/%s', None), -+ 'ghc-ticket': ('http://ghc.haskell.org/trac/ghc/ticket/%s', 'GHC #%s'), +- 'ghc-wiki': ('https://gitlab.haskell.org/ghc/ghc/-/wikis/%s', ''), +- 'ghc-ticket': ('https://gitlab.haskell.org/ghc/ghc/-/issues/%s', 'GHC #'), ++ 'ghc-wiki': ('https://gitlab.haskell.org/ghc/ghc/-/wikis/%s', None), ++ 'ghc-ticket': ('https://gitlab.haskell.org/ghc/ghc/-/issues/%s', 'GHC #%s'), - 'hackage-pkg': ('http://hackage.haskell.org/package/%s', ''), + 'hackage-pkg': ('http://hackage.haskell.org/package/%s', None), ++++++ ghc-8.0.2-Cabal-dynlibdir.patch ++++++ --- /var/tmp/diff_new_pack.aUVMOt/_old 2023-04-04 21:25:48.635028956 +0200 +++ /var/tmp/diff_new_pack.aUVMOt/_new 2023-04-04 21:25:48.639028980 +0200 @@ -1,7 +1,7 @@ -Index: ghc-8.10.0.20200123/libraries/Cabal/Cabal/Distribution/Simple/InstallDirs.hs +Index: ghc-8.10.0.20200123/libraries/Cabal/Cabal/src/Distribution/Simple/InstallDirs.hs =================================================================== ---- ghc-8.10.0.20200123.orig/libraries/Cabal/Cabal/Distribution/Simple/InstallDirs.hs -+++ ghc-8.10.0.20200123/libraries/Cabal/Cabal/Distribution/Simple/InstallDirs.hs +--- ghc-8.10.0.20200123.orig/libraries/Cabal/Cabal/src/Distribution/Simple/InstallDirs.hs ++++ ghc-8.10.0.20200123/libraries/Cabal/Cabal/src/Distribution/Simple/InstallDirs.hs @@ -207,7 +207,7 @@ defaultInstallDirs' False comp userInsta _other -> "$abi" </> "$libname", dynlibdir = "$libdir" </> case comp of ++++++ ghc-8.10.7-src.tar.xz -> ghc-9.4.4-src.tar.xz ++++++ /work/SRC/openSUSE:Factory/ghc/ghc-8.10.7-src.tar.xz /work/SRC/openSUSE:Factory/.ghc.new.19717/ghc-9.4.4-src.tar.xz differ: char 17, line 1 ++++++ ghc-Cabal-install-PATH-warning.patch ++++++ Index: ghc-9.2.0.20210331/libraries/Cabal/Cabal/src/Distribution/Simple/Install.hs =================================================================== --- ghc-9.2.0.20210331.orig/libraries/Cabal/Cabal/src/Distribution/Simple/Install.hs +++ ghc-9.2.0.20210331/libraries/Cabal/Cabal/src/Distribution/Simple/Install.hs @@ -206,8 +206,7 @@ copyComponent verbosity pkg_descr lbi (C ++ " in " ++ binPref) inPath <- isInSearchPath binPref when (not inPath) $ - warn verbosity ("The directory " ++ binPref - ++ " is not in the system search path.") + warn verbosity ("Executable installed in " ++ binPref) case compilerFlavor (compiler lbi) of GHC -> GHC.installExe verbosity lbi binPref buildPref progFix pkg_descr exe GHCJS -> GHCJS.installExe verbosity lbi binPref buildPref progFix pkg_descr exe ++++++ ghc-gen_contents_index-haddock-path.patch ++++++ Index: ghc-9.4.4/libraries/gen_contents_index =================================================================== --- ghc-9.4.4.orig/libraries/gen_contents_index +++ ghc-9.4.4/libraries/gen_contents_index @@ -58,7 +58,7 @@ then HADDOCK_ARGS="$HADDOCK_ARGS $HADDOCK_ARG" 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" ++++++ ghc-hadrian-s390x-rts--qg.patch ++++++ Index: ghc-9.4.4/hadrian/hadrian.cabal =================================================================== --- ghc-9.4.4.orig/hadrian/hadrian.cabal +++ ghc-9.4.4/hadrian/hadrian.cabal @@ -173,7 +173,7 @@ executable hadrian -- waiting for external processes -- * -qg: Don't use parallel GC as the synchronization -- time tends to eat any benefit. - "-with-rtsopts=-I0 -qg" + "-with-rtsopts=-I0" -threaded if flag(selftest) ++++++ ghc-pie.patch ++++++ --- /var/tmp/diff_new_pack.aUVMOt/_old 2023-04-04 21:25:48.723029456 +0200 +++ /var/tmp/diff_new_pack.aUVMOt/_new 2023-04-04 21:25:48.727029479 +0200 @@ -1,11 +1,11 @@ -Index: ghc-8.10.7/compiler/main/DynFlags.hs +Index: ghc-9.4.4/compiler/GHC/Driver/Session.hs =================================================================== ---- ghc-8.10.7.orig/compiler/main/DynFlags.hs -+++ ghc-8.10.7/compiler/main/DynFlags.hs -@@ -4659,6 +4659,7 @@ default_PIC platform = +--- ghc-9.4.4.orig/compiler/GHC/Driver/Session.hs ++++ ghc-9.4.4/compiler/GHC/Driver/Session.hs +@@ -3870,6 +3870,7 @@ default_PIC platform = + -- This requires PIC on AArch64, and ExternalDynamicRefs on Linux as on top -- of that. Subsequently we expect all code on aarch64/linux (and macOS) to -- be built with -fPIC. - -- See #15275, #18892 + (OSLinux, ArchX86_64) -> [Opt_PIC] (OSDarwin, ArchAArch64) -> [Opt_PIC] (OSLinux, ArchAArch64) -> [Opt_PIC, Opt_ExternalDynamicRefs] ++++++ ghc-pkg.man ++++++ .TH ghc-pkg 1 "2010-01-27" .SH NAME ghc-pkg \- GHC Haskell Cabal package manager .SH SYNOPSIS .B ghc-pkg .I action .RI [ OPTION ]... .SH DESCRIPTION A package is a library of Haskell modules known to the compiler. The .B ghc-pkg tool allows adding or removing them from a package database. By default, the system-wide package database is modified, but alternatively the user's local package database or another specified file can be used. .PP To make a package available for .BR ghc , .B ghc-pkg can be used to register it. Unregistering it removes it from the database. Also, packages can be hidden, to make .B ghc ignore the package by default, without uninstalling it. Exposing a package makes a hidden package available. Additionally, .B ghc-pkg has various commands to query the package database. .PP Where a package name is required, the package can be named in full including the version number (e.g. .BR network-1.0 ), or without the version number. Naming a package without the version number matches all versions of the package; the specified action will be applied to all the matching packages. A package specifier that matches all version of the package can also be written .BR pkg-* , to make it clearer that multiple packages are being matched. .SH ACTIONS .TP \fBregister\fP \fIfilename\fP|\fB-\fP Register the package using the specified installed package description. .TP \fBupdate\fP \fIfilename\fP|\fB-\fP Register the package, overwriting any other package with the same name. .TP \fBunregister\fP \fIpkg-id\fP Unregister the specified package. .TP \fBexpose\fP \fIpkg-id\fP Expose the specified package. .TP \fBhide\fP \fIpkg-id\fP Hide the specified package .TP \fBlist\fP \fR[\fIpkg\fR]...\fP List registered packages in the global database, and also the user database if .B --user is given. If a package name is given all the registered versions will be listed in ascending order. Accepts the .B --simple-output flag. .TP .B dot Generate a graph of the package dependencies in a form suitable for input for the graphviz tools. For example, to generate a PDF of the dependency graph: .br \fB dot \| tred \| dot -Tpdf >pkgs.pdf\fP .TP \fBfind-module\fP \fImodule\fP List registered packages exposing module .I module in the global database, and also the user database if .B --user is given. All the registered versions will be listed in ascending order. Accepts the .B --simple-output flag. .TP \fBlatest\fP \fIpkg-id\fP Prints the highest registered version of a package. .TP .B check Check the consistency of package dependencies and list broken packages. Accepts the .B --simple-output flag. .TP \fBdescribe\fP \fIpkg\fP Give the registered description for the specified package. The description is returned in precisely the syntax required by ghc-pkg register. .TP \fBfield\fP \fIpkg field\fP Extract the specified field of the package description for the specified package. Accepts comma-separated multiple fields. .TP .B dump Dump the registered description for every package. This is like .BR ghc-pkg\ describe\ '*' , expect that it is intended to be used by tools that parse the results, rather than humans. .TP .B recache Regenerate the package database cache. This command should only be necessary if you added a package to the database by dropping a file into the database directory manyally. By default, the global DB is recached; to recache a different DB use .B --user or .B --package-conf as appropriate. .SH OPTIONS When asked to modify a database .RB ( register ,\ unregister ,\ update ,\ hide ,\ expose ,\ and\ also\ check ), .B ghc-pkg modifies the global database by default. Specifying .B --user causes it to act on the user database, or .B --package-conf can be used to act on another database entirely. When multiple of these options are given, the rightmost one is used as the database to act upon. .PP Commands that query the package database .RB ( list ,\ latest ,\ describe ,\ field ) operate on the list of databases specified by the flags .BR --user ,\ --global , and .BR --package-conf . If none of these flags are given, the default is .BR --global\ --user . .TP .B --user Use the current user's package database. .TP .B --global Use the global package database. .TP \fB-f\fP \fIFILE\fP, \fB--package-conf=\fIFILE\fP Use the specified package config file. .TP .BI --global-conf= FILE Location of the global package config. .TP .B --force Ignore missing dependencies, directories, and libraries. .TP .B --force-files Ignore missing directories and libraries only. .TP .BR -g ,\ --auto-ghc-libs Automatically build libs for GHCi (with register). .TP .BR -? ,\ --help Display a help message and exit. .TP .BR -V ,\ --version Output version information and exit. .TP .B --simple-output Print output in easy-to-parse format for some commands. .TP .B --names-only Only print package names, not versions; can only be used with .BR list\ --simple-output . .TP .B --ignore-case Ignore case for substring matching. .SH ENVIRONMENT VARIABLES .TP .B GHC_PACKAGE_PATH The .B GHC_PACKAGE_PATH environment variable may be set to a .BR : -separated list of files containing package databases. This list of package databases is used by .B ghc and .BR ghc-pkg , with earlier databases in the list overriding later ones. This order was chosen to match the behaviour of the .B PATH environment variable; think of it as a list of package databases that are searched left-to-right for packages. If .B GHC_PACKAGE_PATH ends in a separator, then the default user and system package databases are appended, in that order. e.g. to augment the usual set of packages with a database of your own, you could say: .br \fB export GHC_PACKAGE_PATH=$HOME/.my-ghc-packages.conf:\fP .br To check whether your .B GHC_PACKAGE_PATH setting is doing the right thing, .B ghc-pkg list will list all the databases in use, in the reverse order they are searched. .SH FILES Both of these locations are changed for Debian. Upstream still keeps these under .IR /usr . Some programs may refer to that, but look in .I /var instead. .TP .I /var/lib/ghc/package.conf Global package.conf file. .TP .I /var/lib/ghc/package.conf.d/ Directory for library specific package.conf files. These are added to the global registry. .SH "SEE ALSO" .BR ghc (1), .BR runghc (1), .BR hugs (1). .SH AUTHOR This manual page was written by Kari Pahula <k...@debian.org>, for the Debian project (and may be used by others). ++++++ ghc.keyring ++++++ --- /var/tmp/diff_new_pack.aUVMOt/_old 2023-04-04 21:25:48.807029933 +0200 +++ /var/tmp/diff_new_pack.aUVMOt/_new 2023-04-04 21:25:48.807029933 +0200 @@ -1,42 +1,81 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- -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 -=AZOC +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 +hDhK1n518A== +=jcSs -----END PGP PUBLIC KEY BLOCK----- ++++++ haddock.man ++++++ .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 <simon...@microsoft.com>, Dawid Waern <david.wa...@gmail.com>. All rights reserved. .SH AUTHOR This manual page was written by Michael Weber <micha...@debian.org> for the Debian GNU/Linux system (but may be used by others). .\" Local variables: .\" mode: nroff .\" End: ++++++ libatomic.patch ++++++ Index: ghc-9.4.4/rts/package.conf.in =================================================================== --- ghc-9.4.4.orig/rts/package.conf.in +++ ghc-9.4.4/rts/package.conf.in @@ -66,6 +66,7 @@ extra-libraries: #if NEED_ATOMIC_LIB , "atomic" #endif + , "atomic" #if defined(INSTALLING) include-dirs: INCLUDE_DIR FFI_INCLUDE_DIR Index: ghc-9.4.4/rts/rts.cabal.in =================================================================== --- ghc-9.4.4.orig/rts/rts.cabal.in +++ ghc-9.4.4/rts/rts.cabal.in @@ -152,6 +152,7 @@ library extra-libraries: elf dw if flag(libnuma) extra-libraries: numa + extra-libraries: atomic if !flag(smp) cpp-options: -DNOSMP ++++++ riscv-tntc.patch ++++++ Index: ghc-9.2.1/compiler/GHC/CmmToLlvm/Mangler.hs =================================================================== --- ghc-9.2.1.orig/compiler/GHC/CmmToLlvm/Mangler.hs +++ ghc-9.2.1/compiler/GHC/CmmToLlvm/Mangler.hs @@ -43,7 +43,7 @@ llvmFixupAsm logger dflags f1 f2 = {-# S -- | These are the rewrites that the mangler will perform rewrites :: [Rewrite] -rewrites = [rewriteSymType, rewriteAVX] +rewrites = [rewriteSymType, rewriteAVX, rewriteCall] type Rewrite = DynFlags -> B.ByteString -> Maybe B.ByteString @@ -107,6 +107,27 @@ rewriteAVX dflags s isVmovdqa = B.isPrefixOf (B.pack "vmovdqa") isVmovap = B.isPrefixOf (B.pack "vmovap") +-- | This rewrites (tail) calls to avoid creating PLT entries for +-- functions on riscv64. The replacement will load the address from the +-- GOT, which is resolved to point to the real address of the function. +rewriteCall :: Rewrite +rewriteCall dflags l + | not isRISCV64 = Nothing + | isCall l = Just $ replaceCall "call" "jalr" "ra" l + | isTail l = Just $ replaceCall "tail" "jr" "t1" l + | otherwise = Nothing + where + isRISCV64 = platformArch (targetPlatform dflags) == ArchRISCV64 + isCall = B.isPrefixOf (B.pack "call\t") + isTail = B.isPrefixOf (B.pack "tail\t") + + replaceCall call jump reg l = + appendInsn (jump ++ "\t" ++ reg) $ removePlt $ + replaceOnce (B.pack call) (B.pack ("la\t" ++ reg ++ ",")) l + where + removePlt = replaceOnce (B.pack "@plt") (B.pack "") + appendInsn i = (`B.append` B.pack ("\n\t" ++ i)) + -- | @replaceOnce match replace bs@ replaces the first occurrence of the -- substring @match@ in @bs@ with @replace@. replaceOnce :: B.ByteString -> B.ByteString -> B.ByteString -> B.ByteString Index: ghc-9.2.1/configure.ac =================================================================== --- ghc-9.2.1.orig/configure.ac +++ ghc-9.2.1/configure.ac @@ -322,7 +322,7 @@ AC_MSG_CHECKING(whether target supports case "$Unregisterised" in NO) case "$TargetArch" in - ia64|powerpc64|powerpc64le|s390x|riscv64) + ia64|powerpc64|powerpc64le|s390x) TablesNextToCodeDefault=NO AC_MSG_RESULT([no]) ;; Index: ghc-9.2.1/libraries/ghci/GHCi/InfoTable.hsc =================================================================== --- ghc-9.2.1.orig/libraries/ghci/GHCi/InfoTable.hsc +++ ghc-9.2.1/libraries/ghci/GHCi/InfoTable.hsc @@ -241,6 +241,15 @@ mkJumpToAddr a = case hostPlatformArch o 0xC0, 0x19, byte3 w64, byte2 w64, byte1 w64, byte0 w64, 0x07, 0xF1 ] + ArchRISCV64 -> pure $ + let w64 = fromIntegral (funPtrToInt a) :: Word64 + in Right [ 0x00000297 -- auipc t0,0 + , 0x01053283 -- ld t0,16(t0) + , 0x00028067 -- jr t0 + , 0x00000013 -- nop + , fromIntegral w64 + , fromIntegral (w64 `shiftR` 32) ] + arch -> -- The arch isn't supported. You either need to add your architecture as a -- distinct case, or use non-TABLES_NEXT_TO_CODE mode. ++++++ runghc.man ++++++ .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.j...@gmail.com>. This is free documentation; see the GNU General Public Licence version 2 or later for copying conditions. There is NO WARRANTY.