Skip to content

oddness surrounding aeson 1.0.2.1 on Debian

per bgamari's request, I am filing this ticket as part of an ongoing plea for help to figure out what is going on.

When building aeson 1.0.2.1 on Debian, we get a failure (https://buildd.debian.org/status/fetch.php?pkg=haskell-aeson&arch=amd64&ver=1.0.2.1-2&stamp=1499701762&raw=0) building the testsuite:

[19 of 19] Compiling Data.Aeson.TH    ( Data/Aeson/TH.hs, dist-ghc/build/Data/Aeson/TH.p_o )
Preprocessing test suite 'tests' for aeson-1.0.2.1...
[ 1 of 13] Compiling Types            ( tests/Types.hs, dist-ghc/build/tests/tests-tmp/Types.o )
[ 2 of 13] Compiling Options          ( tests/Options.hs, dist-ghc/build/tests/tests-tmp/Options.o )
[ 3 of 13] Compiling Functions        ( tests/Functions.hs, dist-ghc/build/tests/tests-tmp/Functions.o )
[ 4 of 13] Compiling Instances        ( tests/Instances.hs, dist-ghc/build/tests/tests-tmp/Instances.o )
[ 5 of 13] Compiling Encoders         ( tests/Encoders.hs, dist-ghc/build/tests/tests-tmp/Encoders.o )
<command line>: can't load .so/.DLL for: /<<PKGBUILDDIR>>/dist-ghc/build/libHSaeson-1.0.2.1-ATVva2eon9U8IQdb5aU6Rk-ghc8.0.2.so (/<<PKGBUILDDIR>>/dist-ghc/build/libHSaeson-1.0.2.1-ATVva2eon9U8IQdb5aU6Rk-ghc8.0.2.so: undefined symbol: aesonzm1zi0zi2zi1zmATVva2eon9U8IQdb5aU6Rk_DataziAesonziEncodingziInternal_utcTime1_closure)

This symbol is *UND* in the .so, but present in Data/Aeson/Encoding/Internal.o and Data/Aeson/Encoding/Internal.dyn_o . Building the testsuite with -O0 causes it to fail with a different symbol.

Building aeson with cabal (modulo having to hand-edit tests/Instances.hs to remove the redundant Tagged instance) results in a successful build of the testsuite. However, if I cabal configure --enable-tests --enable-library-profiling instead of just cabal configure --enable-tests, then the build fails with

[10 of 20] Compiling Data.Aeson.Internal ( Data/Aeson/Internal.hs, dist/build/Data/Aeson/Internal.o )
[11 of 20] Compiling Data.Aeson.Encoding.Builder ( Data/Aeson/Encoding/Builder.hs, dist/build/Data/Aeson/Encoding/Builder.o )
[12 of 20] Compiling Data.Aeson.Encoding.Internal ( Data/Aeson/Encoding/Internal.hs, dist/build/Data/Aeson/Encoding/Internal.o )
[13 of 20] Compiling Data.Aeson.Encoding ( Data/Aeson/Encoding.hs, dist/build/Data/Aeson/Encoding.o )
[14 of 20] Compiling Data.Aeson.Types.ToJSON ( Data/Aeson/Types/ToJSON.hs, dist/build/Data/Aeson/Types/ToJSON.o )
[15 of 20] Compiling Data.Aeson.Types.Class ( Data/Aeson/Types/Class.hs, dist/build/Data/Aeson/Types/Class.o )
[16 of 20] Compiling Data.Aeson.Types ( Data/Aeson/Types.hs, dist/build/Data/Aeson/Types.o )
[17 of 20] Compiling Data.Aeson.Text  ( Data/Aeson/Text.hs, dist/build/Data/Aeson/Text.o )
[18 of 20] Compiling Data.Aeson       ( Data/Aeson.hs, dist/build/Data/Aeson.o )
[19 of 20] Compiling Data.Aeson.Encode ( Data/Aeson/Encode.hs, dist/build/Data/Aeson/Encode.o )
[20 of 20] Compiling Data.Aeson.TH    ( Data/Aeson/TH.hs, dist/build/Data/Aeson/TH.o )
[ 1 of 20] Compiling Data.Aeson.Types.Internal ( Data/Aeson/Types/Internal.hs, dist/build/Data/Aeson/Types/Internal.p_o )

Data/Aeson/Types/Internal.hs:67:1: error:
    Failed to load interface for `Prelude.Compat'
    Perhaps you haven't installed the profiling libraries for package `base-compat-0.9.3'?
    Use -v to see a list of the files searched for.

Data/Aeson/Types/Internal.hs:76:1: error:
    Failed to load interface for `Data.HashMap.Strict'
    Perhaps you haven't installed the profiling libraries for package `unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-9vyhLlLaqmyDfOnbawvdcQ'?
    Use -v to see a list of the files searched for.

Data/Aeson/Types/Internal.hs:77:1: error:
    Failed to load interface for `Data.Hashable'
    Perhaps you haven't installed the profiling libraries for package `hashable-1.2.6.1@hashable-1.2.6.1-BImGDn7vOUG6aLx2AeaDao'?
    Use -v to see a list of the files searched for.

Data/Aeson/Types/Internal.hs:78:1: error:
    Failed to load interface for `Data.Scientific'
    Perhaps you haven't installed the profiling libraries for package `scientific-0.3.5.1'?
    Use -v to see a list of the files searched for.

Data/Aeson/Types/Internal.hs:81:1: error:
    Failed to load interface for `Data.Text'
    Perhaps you haven't installed the profiling libraries for package `text-1.2.2.2@text-1.2.2.2-KC7dWoG09dA1F6jKj5GSqh'?
    Use -v to see a list of the files searched for.

Data/Aeson/Types/Internal.hs:85:1: error:
    Failed to load interface for `Data.Vector'
    Perhaps you haven't installed the profiling libraries for package `vector-0.12.0.1'?
    Use -v to see a list of the files searched for.

Data/Aeson/Types/Internal.hs:87:1: error:
    Failed to load interface for `Data.HashMap.Strict'
    Perhaps you haven't installed the profiling libraries for package `unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-9vyhLlLaqmyDfOnbawvdcQ'?
    Use -v to see a list of the files searched for.

Data/Aeson/Types/Internal.hs:88:1: error:
    Failed to load interface for `Data.Scientific'
    Perhaps you haven't installed the profiling libraries for package `scientific-0.3.5.1'?
    Use -v to see a list of the files searched for.

Data/Aeson/Types/Internal.hs:89:1: error:
    Failed to load interface for `Data.Vector'
    Perhaps you haven't installed the profiling libraries for package `vector-0.12.0.1'?
    Use -v to see a list of the files searched for.
[ 2 of 20] Compiling Data.Aeson.Types.Generic ( Data/Aeson/Types/Generic.hs, dist/build/Data/Aeson/Types/Generic.p_o )

Data/Aeson/Types/Generic.hs:40:1: error:
    Failed to load interface for `Prelude.Compat'
    Perhaps you haven't installed the profiling libraries for package `base-compat-0.9.3'?
    Use -v to see a list of the files searched for.
[ 3 of 20] Compiling Data.Aeson.Parser.Unescape ( Data/Aeson/Parser/Unescape.hs, dist/build/Data/Aeson/Parser/Unescape.p_o )

Data/Aeson/Parser/Unescape.hs:13:1: error:
    Failed to load interface for `Data.Text.Array'
    Perhaps you haven't installed the profiling libraries for package `text-1.2.2.2@text-1.2.2.2-KC7dWoG09dA1F6jKj5GSqh'?
    Use -v to see a list of the files searched for.

Data/Aeson/Parser/Unescape.hs:14:1: error:
    Failed to load interface for `Data.Text.Encoding.Error'
    Perhaps you haven't installed the profiling libraries for package `text-1.2.2.2@text-1.2.2.2-KC7dWoG09dA1F6jKj5GSqh'?
    Use -v to see a list of the files searched for.

Data/Aeson/Parser/Unescape.hs:15:1: error:
    Failed to load interface for `Data.Text.Internal'
    Perhaps you haven't installed the profiling libraries for package `text-1.2.2.2@text-1.2.2.2-KC7dWoG09dA1F6jKj5GSqh'?
    Use -v to see a list of the files searched for.

Data/Aeson/Parser/Unescape.hs:16:1: error:
    Failed to load interface for `Data.Text.Internal.Private'
    Perhaps you haven't installed the profiling libraries for package `text-1.2.2.2@text-1.2.2.2-KC7dWoG09dA1F6jKj5GSqh'?
    Use -v to see a list of the files searched for.

Data/Aeson/Parser/Unescape.hs:17:1: error:
    Failed to load interface for `Data.Text.Unsafe'
    Perhaps you haven't installed the profiling libraries for package `text-1.2.2.2@text-1.2.2.2-KC7dWoG09dA1F6jKj5GSqh'?
    Use -v to see a list of the files searched for.
[ 6 of 20] Compiling Data.Aeson.Internal.Time ( Data/Aeson/Internal/Time.hs, dist/build/Data/Aeson/Internal/Time.p_o )

Data/Aeson/Internal/Time.hs:21:1: error:
    Failed to load interface for `Prelude.Compat'
    Perhaps you haven't installed the profiling libraries for package `base-compat-0.9.3'?
    Use -v to see a list of the files searched for.
[ 8 of 20] Compiling Data.Aeson.Internal.Functions ( Data/Aeson/Internal/Functions.hs, dist/build/Data/Aeson/Internal/Functions.p_o )

Data/Aeson/Internal/Functions.hs:18:1: error:
    Failed to load interface for `Prelude.Compat'
    Perhaps you haven't installed the profiling libraries for package `base-compat-0.9.3'?
    Use -v to see a list of the files searched for.

Data/Aeson/Internal/Functions.hs:20:1: error:
    Failed to load interface for `Data.Hashable'
    Perhaps you haven't installed the profiling libraries for package `hashable-1.2.6.1@hashable-1.2.6.1-BImGDn7vOUG6aLx2AeaDao'?
    Use -v to see a list of the files searched for.

Data/Aeson/Internal/Functions.hs:21:1: error:
    Failed to load interface for `Data.HashMap.Strict'
    Perhaps you haven't installed the profiling libraries for package `unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-9vyhLlLaqmyDfOnbawvdcQ'?
    Use -v to see a list of the files searched for.

This is interesting because when we build aeson-compat (https://buildd.debian.org/status/package.php?p=haskell-aeson-compat&suite=sid) against the questionable build of aeson, we get

Preprocessing test suite 'aeson-compat-test' for aeson-compat-0.3.6...
[1 of 2] Compiling Orphans          ( test/Orphans.hs, dist-ghc/build/aeson-compat-test/aeson-compat-test-tmp/Orphans.o )
[2 of 2] Compiling Main             ( test/Tests.hs, dist-ghc/build/aeson-compat-test/aeson-compat-test-tmp/Main.o )
/usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-8.0.2/aeson-1.0.2.1-CgbEAGwJWkq5wCUqDjmFHU/Data/Aeson/Types/ToJSON.hi
Declaration for $fToJSONProxy_$ctoEncoding:
  Failed to load interface for `Data.Aeson.Encoding.Internal'
  There are files missing in the `aeson-1.0.2.1' package,
  try running 'ghc-pkg check'.
  Use -v to see a list of the files searched for.
Cannot continue after interface file error
Trac metadata
Trac field Value
Version 8.0.2
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information