[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#630320: obus: FTBFS on several architectures: can't find Dynlink



clone 630320 -1
reassign -1 libfindlib-ocaml 1.2.6+debian-1
retitle -1 camlp4 depends on Dynlink on all architectures
severity -1 important
tag -1 patch
retitle 630320 FTBFS on ocaml native arches without native dynlink
tag 630320 pending
thanks

Hi,

Thanks for your report. There are indeed two separate issues, one for
armel, and one for the other architectures.

The armel issue is an obus issue: configure detects that armel is a native
architecture and therefore builds native files. However, as camlp4
depends on dynlink, and armel doesn't have native dynlink, it fails to
build. Forcing a non-native build on architectures without natdynlink
fixes the issue.


For the other arches, the problem is that camlp4 now unconditionnally
depends on Dynlink, whether the architecture have natdynlink or
not. This change (which I couldn't trace, but surely is an ocaml
upstream change) wasn't reflected in the METAS/META.camlp4 file, and
now camlp4.lib fails to link on non-natdynlink architectures.

To see the bug, e.g. on a mipsel qemu:

------8<------
nicolasd@debian:~$ ocaml
        Objective Caml version 3.12.0

# #use "topfind";;
- : unit = ()
Findlib has been successfully loaded. Additional directives:
  #require "package";;      to load a package
  #list;;                   to list the available packages
  #camlp4o;;                to load camlp4 (standard syntax)
  #camlp4r;;                to load camlp4 (revised syntax)
  #predicates "p,q,...";;   to set these predicates
  Topfind.reset();;         to force that packages will be reloaded
  #thread;;                 to enable threads

- : unit = ()
# #camlp4o;;
/usr/lib/ocaml/camlp4: added to search path
/usr/lib/ocaml/camlp4/camlp4o.cma: loaded
Error: Reference to undefined global `Dynlink'
------8<------

Attached is a patch for findlib, I didn't commit this as I'm not certain
this is the way to go. But anyway after changing the META.camlp4 file
the obus FTBFS goes away.

Thanks,
-- 
Nicolas Dandrimont
From: Nicolas Dandrimont <nicolas.dandrimont@crans.org>
Date: Tue, 14 Jun 2011 15:21:31 +0200
Subject: Camlp4 depends on Dynlink on every architecture

---
 site-lib-src/camlp4.310/META.in |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/site-lib-src/camlp4.310/META.in b/site-lib-src/camlp4.310/META.in
index 637d848..a490ab1 100644
--- a/site-lib-src/camlp4.310/META.in
+++ b/site-lib-src/camlp4.310/META.in
@@ -6,7 +6,7 @@ dnl This file is input of the m4 macro processor.
 `directory = "'camlp4_dir`"'
 
 `# For the toploop:'
-`requires(byte,toploop) = "'camlp4_dynlink`"'
+`requires(byte,toploop) = "dynlink"'
 `archive(byte,toploop,camlp4o) = "camlp4o.cma"'
 `archive(byte,toploop,camlp4r) = "camlp4r.cma"'
 
@@ -16,7 +16,7 @@ dnl This file is input of the m4 macro processor.
 `preprocessor = "'camlp4_cmd`"'
 
 `package "lib" ('
-`  requires = "camlp4 'camlp4_dynlink`"'
+`  requires = "camlp4 dynlink"'
 `  version = "[distributed with Ocaml]"'
 `  description = "Camlp4 library"'
 `  archive(byte) = "camlp4lib.cma"'
-- 

Attachment: pgpzsQJqG0yvW.pgp
Description: PGP signature


Reply to: