UNREG: fix implicit declarations from pdep and pext
authorSergei Trofimovich <slyfox@gentoo.org>
Fri, 9 Mar 2018 17:43:01 +0000 (17:43 +0000)
committerSergei Trofimovich <slyfox@gentoo.org>
Fri, 9 Mar 2018 17:54:19 +0000 (17:54 +0000)
Unreg build failed as:

  $ ./configure --enable-unregisterised
  $ make

  HC [stage 1] libraries/ghc-prim/dist-install/build/GHC/PrimopWrappers.o
    ghc_1.hc: In function 'ghczmprim_GHCziPrimopWrappers_pdep8zh_entry':

    ghc_1.hc:1810:9: error:
     error: implicit declaration of function 'hs_pdep8'; did you mean 'hs_ctz8'?
       [-Werror=implicit-function-declaration]
     _c3jz = hs_pdep8(*Sp, Sp[1]);
             ^~~~~~~~
             hs_ctz8
       |
  1810 | _c3jz = hs_pdep8(*Sp, Sp[1]);
       |         ^

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
includes/stg/Prim.h
libraries/ghc-prim/cbits/pdep.c
libraries/ghc-prim/cbits/pext.c

index fa3a3ec..a18e02c 100644 (file)
@@ -58,6 +58,18 @@ StgWord64 hs_bswap64(StgWord64 x);
 
 /* TODO: longlong.c */
 
+/* libraries/ghc-prim/cbits/pdep.c */
+StgWord64 hs_pdep64(StgWord64 src, StgWord64 mask);
+StgWord hs_pdep32(StgWord src, StgWord mask);
+StgWord hs_pdep16(StgWord src, StgWord mask);
+StgWord hs_pdep8(StgWord src, StgWord mask);
+
+/* libraries/ghc-prim/cbits/pext.c */
+StgWord64 hs_pext64(StgWord64 src, StgWord64 mask);
+StgWord hs_pext32(StgWord src, StgWord mask);
+StgWord hs_pext16(StgWord src, StgWord mask);
+StgWord hs_pext8(StgWord src, StgWord mask);
+
 /* libraries/ghc-prim/cbits/popcnt.c */
 StgWord hs_popcnt8(StgWord x);
 StgWord hs_popcnt16(StgWord x);
index 8435ffe..58e8611 100644 (file)
@@ -1,8 +1,6 @@
 #include "Rts.h"
 #include "MachDeps.h"
 
-extern StgWord64 hs_pdep64(StgWord64 src, StgWord64 mask);
-
 StgWord64
 hs_pdep64(StgWord64 src, StgWord64 mask)
 {
@@ -26,21 +24,18 @@ hs_pdep64(StgWord64 src, StgWord64 mask)
   return result;
 }
 
-extern StgWord hs_pdep32(StgWord src, StgWord mask);
 StgWord
 hs_pdep32(StgWord src, StgWord mask)
 {
   return hs_pdep64(src, mask);
 }
 
-extern StgWord hs_pdep16(StgWord src, StgWord mask);
 StgWord
 hs_pdep16(StgWord src, StgWord mask)
 {
   return hs_pdep64(src, mask);
 }
 
-extern StgWord hs_pdep8(StgWord src, StgWord mask);
 StgWord
 hs_pdep8(StgWord src, StgWord mask)
 {
index fe960b1..9cddede 100644 (file)
@@ -1,8 +1,6 @@
 #include "Rts.h"
 #include "MachDeps.h"
 
-extern StgWord64 hs_pext64(StgWord64 src, StgWord64 mask);
-
 StgWord64
 hs_pext64(StgWord64 src, StgWord64 mask)
 {
@@ -22,21 +20,18 @@ hs_pext64(StgWord64 src, StgWord64 mask)
   return result;
 }
 
-extern StgWord hs_pext32(StgWord src, StgWord mask);
 StgWord
 hs_pext32(StgWord src, StgWord mask)
 {
   return hs_pext64(src, mask);
 }
 
-extern StgWord hs_pext16(StgWord src, StgWord mask);
 StgWord
 hs_pext16(StgWord src, StgWord mask)
 {
   return hs_pext64(src, mask);
 }
 
-extern StgWord hs_pext8(StgWord src, StgWord mask);
 StgWord
 hs_pext8(StgWord src, StgWord mask)
 {