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.

Reply via email to