[GHC] #7062: Spurious undefined reference to `openpty'
GHC
cvs-ghc at haskell.org
Thu Jul 26 07:58:16 CEST 2012
#7062: Spurious undefined reference to `openpty'
---------------------------------+------------------------------------------
Reporter: simonmar | Owner:
Type: bug | Status: merge
Priority: high | Milestone: 7.4.3
Component: Compiler | Version: 7.4.2
Keywords: | Os: Unknown/Multiple
Architecture: Unknown/Multiple | Failure: None/Unknown
Difficulty: Unknown | Testcase:
Blockedby: | Blocking:
Related: |
---------------------------------+------------------------------------------
Comment(by nus):
Replying to [comment:8 trommler]:
> Replying to [comment:7 simonmar]:
> > @trommler does the patch fix it for you?
> Yes, it fixes the linker issue.
>
> The test, however, still fails for me. Now libHSunix*.so cannot be
found:
>
> {{{
> =====> process001(dyn) 1 of 13 [0, 0, 0]
> cd . && '/local/home/peter/ghc-HEAD-validate/inplace/bin/ghc-stage2'
-fforce-recomp -dcore-lint -dcmm-lint -dno-debug-output -no-user-package-
db -rtsopts -fno-ghci-history -o process001 process001.hs -O -dynamic
>process001.comp.stderr 2>&1
> cd . && ./process001 </dev/null >process001.run.stdout
2>process001.run.stderr
> Wrong exit code (expected 0 , actual 127 )
> Stdout:
>
> Stderr:
> ./process001: error while loading shared libraries:
libHSunix-2.5.1.0-ghc7.5.20120713.so: cannot open shared object file: No
such file or directory
> }}}
I'm not sure what's going on with that build. After applying
http://hackage.haskell.org/trac/ghc/changeset/301b37255fb9ea3abd634cf9caf774c6dab647b7
to the pristine ghc-7.4.2 sources the `process001(dyn)` test from the
7.4.2 testsuite finishes OK here.
> This matches nus' results with readelf above. In number 2) note that
libHSunix... is missing in {{{readelf -d process001}}} output. That means
the Rpath to libHSunix... is also not included in process001 and hence the
"No such file or directory."
Perhaps you're checking a different executable? Here RPATH of the produced
executable has the path to the directory containing `HSunix`:
{{{
$ cd ~/dev/ghc-7.4.2/libraries/process/tests
$ /home/user/dev/ghc-7.4.2/inplace/bin/ghc-stage2 -fforce-recomp -dcore-
lint -dcmm-lint -dno-debug-output -no-user-package-conf -rtsopts -fno-
ghci-history -o process001 process001.hs -O -dynamic
[1 of 1] Compiling Main ( process001.hs, process001.o )
Linking process001 ...
$ readelf -d process001
Dynamic section at offset 0x2d98 contains 25 entries:
Tag Type Name/Value
0x0000000000000001 (NEEDED) Shared library:
[libHSprocess-1.1.0.1-ghc7.4.2.so]
0x0000000000000001 (NEEDED) Shared library:
[libHSbase-4.5.1.0-ghc7.4.2.so]
0x0000000000000001 (NEEDED) Shared library: [libHSghc-
prim-0.2.0.0-ghc7.4.2.so]
0x0000000000000001 (NEEDED) Shared library: [libHSrts-
ghc7.4.2.so]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x000000000000000f (RPATH) Library rpath:
[/home/user/dev/ghc-7.4.2/libraries/process/dist-
install/build:/home/user/dev/ghc-7.4.2/libraries/directory/dist-
install/build:/home/user/dev/ghc-7.4.2/libraries/unix/dist-
install/build:/home/user/dev/ghc-7.4.2/libraries/bytestring/dist-
install/build:/home/user/dev/ghc-7.4.2/libraries/old-time/dist-
install/build:/home/user/dev/ghc-7.4.2/libraries/old-locale/dist-
install/build:/home/user/dev/ghc-7.4.2/libraries/filepath/dist-
install/build:/home/user/dev/ghc-7.4.2/libraries/base/dist-
install/build:/home/user/dev/ghc-7.4.2/libraries/integer-gmp/dist-
install/build:/home/user/dev/ghc-7.4.2/libraries/ghc-prim/dist-
install/build:/home/user/dev/ghc-7.4.2/rts/dist/build]
[...snip...]
}}}
From the libraries involved in the link, produced after applying the
patch, `HSprocess`, `HSdirectory`, `HSunix`, only `HSunix` and
`HSdirectory` have changed their DT_NEEDED tags in the dynamic sections,
`HSprocess` remains same.
{{{
--- non-patched-elf-HSdirectory.so 2012-07-26 07:20:31.783083933
+0400
+++ patched-elf-HSdirectory.so 2012-07-26 09:26:01.773447158 +0400
@@ -1,9 +1,7 @@
-Dynamic section at offset 0x1a9e8 contains 30 entries:
+Dynamic section at offset 0x1aa08 contains 28 entries:
Tag Type Name/Value
0x0000000000000001 (NEEDED) Shared library:
[libHSunix-2.5.1.1-ghc7.4.2.so]
- 0x0000000000000001 (NEEDED) Shared library: [libutil.so.1]
- 0x0000000000000001 (NEEDED) Shared library: [libdl.so.2]
[...snip...]
}}}
{{{
--- non-patched-elf-HSunix.so 2012-07-26 07:20:27.843084217 +0400
+++ patched-elf-HSunix.so 2012-07-26 09:25:44.133448671 +0400
@@ -1,6 +1,9 @@
-Dynamic section at offset 0xb1798 contains 26 entries:
+Dynamic section at offset 0xb1768 contains 29 entries:
Tag Type Name/Value
+ 0x0000000000000001 (NEEDED) Shared library: [libutil.so.1]
+ 0x0000000000000001 (NEEDED) Shared library: [libdl.so.2]
+ 0x0000000000000001 (NEEDED) Shared library:
[libpthread.so.0]
[...snip...]
}}}
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7062#comment:12>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the Glasgow-haskell-bugs
mailing list