Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ranlib not run on lib/ocaml/camlp4/*.a #2944

Closed
vicuna opened this issue Jul 15, 2004 · 4 comments
Closed

ranlib not run on lib/ocaml/camlp4/*.a #2944

vicuna opened this issue Jul 15, 2004 · 4 comments
Labels

Comments

@vicuna
Copy link

vicuna commented Jul 15, 2004

Original bug ID: 2944
Reporter: administrator
Status: closed
Resolution: fixed
Priority: normal
Severity: minor
Category: ~DO NOT USE (was: OCaml general)

Bug description

Full_Name: Brian Emre Aydemir
Version: 3.08.0
OS: Mac OS X (10.3.4)
Submission from: cs2437-119.austin.rr.com (24.243.7.119)

Problem: It appears that ranlib is not run on the *.a files installed into
lib/ocaml/camlp4.

To reproduce, I think the following works. Download OCaml 3.08.0 sources, build
(using "make world.opt"), and install. I used a prefix of /Users/emre/Install.
No other options were given to ./configure. At this point, note that
./configure finds ranlib, and that neither "make world.opt" and "make install"
list ranlib being run on anything installed into lib/ocaml/camlp4. Now try
linking against camlp4.cmxa, for example. ld complains that the table of
contents on camlp4.a is out of date, and linking fails:

ld: table of contents for archive: /Users/emre/Install/lib/ocaml/camlp4/camlp4.a
is out of date; rerun ranlib(1) (can't load from it)

=====

The exact problem I run into happens while compiling MetaPRL
(http://www.metaprl.org/). The particular command is below. Running ranlib as
the output suggests fixes the problem.

ocamlopt.opt -warn-error Ae -w Ae -pp "camlp4r -I
/Users/emre/Install/lib/ocaml/camlp4 -nolib" -inline 3 -I . -I
/Users/emre/Install/lib/ocaml/camlp4 -o macropp.opt unix.cmxa
/Users/emre/Install/lib/ocaml/camlp4/odyl.cmxa
/Users/emre/Install/lib/ocaml/camlp4/camlp4.cmxa
/Users/emre/Install/lib/ocaml/camlp4/pr_dump.cmx
/Users/emre/Install/lib/ocaml/camlp4/pa_o.cmx pa_macro.cmx macro_main.cmx -cclib
-L/sw/lib -cclib -lcrypto -cclib -lssl -cclib -lreadline -cclib -lncurses
-linkall
ld: table of contents for archive: /Users/emre/Install/lib/ocaml/camlp4/camlp4.a
is out of date; rerun ranlib(1) (can't load from it)
ld: table of contents for archive: /Users/emre/Install/lib/ocaml/camlp4/odyl.a
is out of date; rerun ranlib(1) (can't load from it)
ld: warning prebinding disabled because dependent library:
/usr/lib/system/libmathCommon.A.dylib can't be searched
Error during linking

@vicuna
Copy link
Author

vicuna commented Jul 28, 2004

Comment author: administrator

Dear Brian,

Thanks for the report. I've added the appropriate calls to ranlib in the CVS
branches (nightly updated).

-- Michel

Full_Name: Brian Emre Aydemir
Version: 3.08.0
OS: Mac OS X (10.3.4)
Submission from: cs2437-119.austin.rr.com (24.243.7.119)

Problem: It appears that ranlib is not run on the *.a files installed into
lib/ocaml/camlp4.

@vicuna
Copy link
Author

vicuna commented Jul 28, 2004

Comment author: administrator

Fixed by MM, 2004-07-28.

@vicuna vicuna closed this as completed Jul 28, 2004
@vicuna
Copy link
Author

vicuna commented Jul 29, 2004

Comment author: administrator

Hi Michel,

I've taken a look at the release308 CVS branch and I see the changes.
However, when I try a "make install" after "./configure" and "make
world.opt", I see the following in the output:

=====
for f in camlp4.a camlp4.p.a ; do
if test -f $f ; then
cp $f "/Users/emre/Research/ocaml-install/lib/ocaml/camlp4/." && (
cd "/Users/emre/Research/ocaml-install/lib/ocaml/camlp4/." && $f ) ;

fi ;
done
/bin/sh: line 1: camlp4.a: command not found

Similar messages appear for odyl.a and gramlib.a. In the Makefiles,
there is a $(RANLIB) before the final $$f ($f in the output above), so
this suggests that $(RANLIB) is undefined. "./configure" reported
"ranlib found", though.

If I add the line "include ../../config/Makefile" to
camlp4/camlp4/Makefile, this fixes the problem for camlp4.a. Similar
changes seem to work for odyl.a and gramlib.a Perhaps this, or some
equivalent code, could be added to the Makefiles?

Thank you,
Brian

On Jul 28, 2004, at 8:28 AM, Michel Mauny wrote:

Dear Brian,

Thanks for the report. I've added the appropriate calls to ranlib in
the CVS
branches (nightly updated).

-- Michel

Full_Name: Brian Emre Aydemir
Version: 3.08.0
OS: Mac OS X (10.3.4)
Submission from: cs2437-119.austin.rr.com (24.243.7.119)

Problem: It appears that ranlib is not run on the *.a files installed
into
lib/ocaml/camlp4.

@vicuna
Copy link
Author

vicuna commented Jul 29, 2004

Comment author: administrator

Hi Brian,

baydemir@cis.upenn.edu wrote/écrivait (Thu, Jul 29, 2004 at 06:04:32PM +0200):

Hi Michel,

I've taken a look at the release308 CVS branch and I see the changes.
However, when I try a "make install" after "./configure" and "make
world.opt", I see the following in the output:

Yes, it looks like RANLIB is not defined in your installation. It
would happen if you forgot the initial ./configure.

Here is what should happen: normally, the ./configure calls
camlp4/config/configure_batch which greps the lines about RANLIB in
(ocaml's) config/Makefile. They are sent to
camlp4/config/Makefile.cnf, and finally go to camlp4/config/Makefile.

Could you please check that there is a line grep-ing RANLIB in
your camlp4/config/configure_batch? If no, update from the CVS. If
yes, please try again after a ./configure in the main directory. If
nothing works, then I don't understand...

Thanks,

-- Michel

@vicuna vicuna added the bug label Mar 19, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant