unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
* Re: How does one specify linking to 64 bit libraries when there is a choice?
       [not found] ` <CMM.0.95.0.1292605766.beebe@psi.math.utah.edu>
@ 2010-12-17 17:31   ` Bruce Korb
  0 siblings, 0 replies; 9+ messages in thread
From: Bruce Korb @ 2010-12-17 17:31 UTC (permalink / raw)
  To: Nelson H. F. Beebe; +Cc: Libtool List, Guile Development

Hi Nelson,

On Fri, Dec 17, 2010 at 9:09 AM, Nelson H. F. Beebe <beebe@math.utah.edu> wrote:
> The recent exchanges about the /usr/local/lib vs /usr/local/lib64
> problem with libtool + autogen + guile gave me a critical clue.  I
> examined all of the /usr/local/lib64/*.la files, and found dozens that
> mention (incorrectly) /usr/local/lib.
>
> A couple of passes with "sed -i" scripts repaired them, and I was then
> able to build guile-1.8.8 successfully on GNU/Linux AMD64 with Red Hat
> 5.5, but there are still socket test failures on Red Hat 4.8 that may
> be a separate issue.

One final question, what does the output of
   `guile-config link`
say after you have fiddled the libguile.la file?
If you have it newly installed on your down machine "abajo"
then there is still a problem:

 abajo_guile $ /usr/local/bin/guile-config link
 -pthread -L/usr/local/lib -lguile -lltdl -L/usr/local/lib64 \
-Wl,-rpath,/usr/local/lib64 -lgmp -lcrypt -lm -lltdl

The one in /usr/bin seems insufficient and it is not at the
head of the PATH list

 abajo_guile $ /usr/bin/guile-config link
-pthread -lguile

The versions:

 abajo_guile $ which -a guile
/usr/local/bin/guile
/usr/bin/guile
 abajo_guile $ for f in $(which -a guile);do $f --version|head -1;done
Guile 1.8.8
Guile 1.8.0



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: How does one specify linking to 64 bit libraries when there is a        choice?
       [not found] <CMM.0.95.0.1292615864.beebe@psi.math.utah.edu>
@ 2010-12-17 20:10 ` Bruce Korb
  2010-12-20  4:40   ` Noah Lavine
  0 siblings, 1 reply; 9+ messages in thread
From: Bruce Korb @ 2010-12-17 20:10 UTC (permalink / raw)
  To: Nelson H. F. Beebe, Libtool List, guile-devel

Hi Nelson,

I am nearly certain we (you) have reached a point where
libtool folks are going to say, "it is Guile", and Guile
folks are going to say, "it is libtool".  I am going to
say, "I'd like some help from either or both".

Because the guile-config invokes the guile binary in order
to print out the unvarying strings from the configuration,
it requires reverse engineering the entire Guile package
to fully understand how it comes up with the strings it
does.  I can do it, but I am not any more eager than you.

I think first up, someone from Guile needs to analyze
the machinery behind "guile-config".  I am willing to
help with test runs on the utah.edu machines in order
to diagnose the issue.

Cheers - Bruce

On 12/17/10 11:57, Nelson H. F. Beebe wrote:
> Well, I have now done three more builds of guile-1.8.8.  The first and
> second supplied libdir=/usr/local/lib64 on the command line of all
> "make" runs.  That did not help: /usr/local/bin/guile-config still
> reported -L/usr/local/lib.
> 
> I found that LTLIBICONV still has -L/usr/local/lib in the first
> attempt, so I replaced it by LTLIBICONV=-liconv for the second
> attempt.
> 
> For the third, I did "make clean", then used sed -i + xargs to
> explicitly set libdir in every Makefile, in case it is not being
> passed correctly to child makes.
> 
> That too does not help:
> 
> % /usr/local/bin/guile-config link | fmt -w 10
>  -pthread
>  -L/usr/local/lib
>  -lguile
>  -lltdl
>  -L/usr/local/lib64
>  -Wl,-rpath,/usr/local/lib64
>  -lgmp
>  -lcrypt
>  -lm
>  -lltdl
> 
> For the fourth try, I used sed + xargs again to force all references
> to the iconv library to just use a bare -liconv.  Sadly, the incorrect
> -L/usr/local/lib option still appears.
> 
> % guile
> guile> (define (get-build-info name)
>   (let ((val (assq name %guile-build-info)))
>     (if (not (pair? val))
>         (begin
>           (display-line-error
>            program-name " " subcommand-name ": no such build-info: " name)
>           (quit 2)))
>     (cdr val)))
> guile> (get-build-info 'LIBS)
> "-L/usr/local/lib64 -Wl,-rpath,/usr/local/lib64  -lgmp -lcrypt -lm -lltdl "
> guile> (get-build-info 'libdir)
> "/usr/local/lib"
> 
> I'm unsure of where to proceed at this point.  The logs of the four
> tries are in
> 
>     /usr/local/gnu/src/guile/logs/guile-1.8.8/Typescript.abajo.math.utah.edu.2010.12.17.12.12.44.xz
> 
> P.S. I leave the country on a 3-week trip next Saturday (25-Dec-2010),
> and I won't have computer access during that time.

That will be after I leave (22-Dec), but I get back 12/27
(400 miles is still within the US).  I would hope this is
resolved before next Wednesday.......Have a nice trip & holiday!
Regards, Bruce

_______________________________________________
http://lists.gnu.org/mailman/listinfo/libtool


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: How does one specify linking to 64 bit libraries when there is a choice?
  2010-12-17 20:10 ` How does one specify linking to 64 bit libraries when there is a choice? Bruce Korb
@ 2010-12-20  4:40   ` Noah Lavine
  2010-12-20 10:56     ` Andy Wingo
  2010-12-20 14:09     ` Bruce Korb
  0 siblings, 2 replies; 9+ messages in thread
From: Noah Lavine @ 2010-12-20  4:40 UTC (permalink / raw)
  To: Bruce Korb; +Cc: Libtool List, guile-devel, Nelson H. F. Beebe

Hello,

I am not at all an expert on guile-config, but I will help if I can.

First of all, as to how guile-config works. At least in the latest git
version, it seems to be a thin wrapper for pkg-config.

I found the file that pkg-config will be using to give you this
information. It is meta/guile-<version number>.pc in my Guile source
tree. Furthermore, I think it's safe to assume that it is generated
from meta/guile-<version number>.pc.in.

But that file is just a pretty innocuous-looking template where it
looks like you paste some variables that would be generated by the
configure script.

Therefore, I have this question for you - are you able to configure
Guile to use 64-bit libs using the configure script?

Noah Lavine

On Fri, Dec 17, 2010 at 3:10 PM, Bruce Korb <bruce.korb@gmail.com> wrote:
> Hi Nelson,
>
> I am nearly certain we (you) have reached a point where
> libtool folks are going to say, "it is Guile", and Guile
> folks are going to say, "it is libtool".  I am going to
> say, "I'd like some help from either or both".
>
> Because the guile-config invokes the guile binary in order
> to print out the unvarying strings from the configuration,
> it requires reverse engineering the entire Guile package
> to fully understand how it comes up with the strings it
> does.  I can do it, but I am not any more eager than you.
>
> I think first up, someone from Guile needs to analyze
> the machinery behind "guile-config".  I am willing to
> help with test runs on the utah.edu machines in order
> to diagnose the issue.
>
> Cheers - Bruce
>
> On 12/17/10 11:57, Nelson H. F. Beebe wrote:
>> Well, I have now done three more builds of guile-1.8.8.  The first and
>> second supplied libdir=/usr/local/lib64 on the command line of all
>> "make" runs.  That did not help: /usr/local/bin/guile-config still
>> reported -L/usr/local/lib.
>>
>> I found that LTLIBICONV still has -L/usr/local/lib in the first
>> attempt, so I replaced it by LTLIBICONV=-liconv for the second
>> attempt.
>>
>> For the third, I did "make clean", then used sed -i + xargs to
>> explicitly set libdir in every Makefile, in case it is not being
>> passed correctly to child makes.
>>
>> That too does not help:
>>
>> % /usr/local/bin/guile-config link | fmt -w 10
>>  -pthread
>>  -L/usr/local/lib
>>  -lguile
>>  -lltdl
>>  -L/usr/local/lib64
>>  -Wl,-rpath,/usr/local/lib64
>>  -lgmp
>>  -lcrypt
>>  -lm
>>  -lltdl
>>
>> For the fourth try, I used sed + xargs again to force all references
>> to the iconv library to just use a bare -liconv.  Sadly, the incorrect
>> -L/usr/local/lib option still appears.
>>
>> % guile
>> guile> (define (get-build-info name)
>>   (let ((val (assq name %guile-build-info)))
>>     (if (not (pair? val))
>>         (begin
>>           (display-line-error
>>            program-name " " subcommand-name ": no such build-info: " name)
>>           (quit 2)))
>>     (cdr val)))
>> guile> (get-build-info 'LIBS)
>> "-L/usr/local/lib64 -Wl,-rpath,/usr/local/lib64  -lgmp -lcrypt -lm -lltdl "
>> guile> (get-build-info 'libdir)
>> "/usr/local/lib"
>>
>> I'm unsure of where to proceed at this point.  The logs of the four
>> tries are in
>>
>>     /usr/local/gnu/src/guile/logs/guile-1.8.8/Typescript.abajo.math.utah.edu.2010.12.17.12.12.44.xz
>>
>> P.S. I leave the country on a 3-week trip next Saturday (25-Dec-2010),
>> and I won't have computer access during that time.
>
> That will be after I leave (22-Dec), but I get back 12/27
> (400 miles is still within the US).  I would hope this is
> resolved before next Wednesday.......Have a nice trip & holiday!
> Regards, Bruce
>
>



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: How does one specify linking to 64 bit libraries when there is a choice?
  2010-12-20  4:40   ` Noah Lavine
@ 2010-12-20 10:56     ` Andy Wingo
  2010-12-20 14:09     ` Bruce Korb
  1 sibling, 0 replies; 9+ messages in thread
From: Andy Wingo @ 2010-12-20 10:56 UTC (permalink / raw)
  To: Noah Lavine; +Cc: Libtool List, Bruce Korb, Nelson H. F. Beebe, guile-devel

Hello,

When a work subscription to libtool and a home subscription to
guile-devel collide...

On Mon 20 Dec 2010 05:40, Noah Lavine <noah.b.lavine@gmail.com> writes:

> I found the file that pkg-config will be using to give you this
> information. It is meta/guile-<version number>.pc in my Guile source
> tree. Furthermore, I think it's safe to assume that it is generated
> from meta/guile-<version number>.pc.in.

I think with 1.8, which is what Nelson is trying to build, it's still a
fairly thick thing.

>> On 12/17/10 11:57, Nelson H. F. Beebe wrote:
>>> /usr/local/bin/guile-config still reported -L/usr/local/lib.

Usually if you have 64-bit libs in lib64, you have to pass --libdir
explicitly.

So you would configure guile using:

    ./configure --prefix=/usr/local --libdir=/usr/local/lib64

If you still get /usr/local/lib coming out in guile's configure, you may
have a libtool-related issue, but I doubt it.

Cheers,

ANdy

_______________________________________________
http://lists.gnu.org/mailman/listinfo/libtool


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: How does one specify linking to 64 bit libraries when there is a choice?
  2010-12-20  4:40   ` Noah Lavine
  2010-12-20 10:56     ` Andy Wingo
@ 2010-12-20 14:09     ` Bruce Korb
  2010-12-20 14:23       ` Andy Wingo
                         ` (2 more replies)
  1 sibling, 3 replies; 9+ messages in thread
From: Bruce Korb @ 2010-12-20 14:09 UTC (permalink / raw)
  To: Libtool List, guile-devel; +Cc: Bruce Korb, Nelson H. F. Beebe

On 12/19/10 20:40, Noah Lavine wrote:
> Hello,
> 
> I am not at all an expert on guile-config, but I will help if I can.

Thank you to all who responded.

> Usually if you have 64-bit libs in lib64, you have to pass --libdir
> explicitly.

We've now concluded that that is, indeed, the answer to the
original question.  The fallout question:

  How much understanding of the machinery should be expected
  of the hapless project builder?

Nelson has been doing this stuff for quite a while and has
reasonably good understanding of the process.  From that
understanding, he made the assumption that a standard 64 bit
"Red Hat Enterprise Linux Server release 5.5 (Tikanga)"
installation would be compatible with installing Guile via
   ./configure && make && sudo make install
and not wind up with a frumitzed `guile-config link` output.
The assumption was incorrect and we now know that.

Perhaps we can strive to make the assumption correct
in the future?

Thank you!  Regards, Bruce



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: How does one specify linking to 64 bit libraries when there is a choice?
  2010-12-20 14:09     ` Bruce Korb
@ 2010-12-20 14:23       ` Andy Wingo
  2010-12-20 14:30       ` Ralf Corsepius
  2010-12-20 19:20       ` Ralf Wildenhues
  2 siblings, 0 replies; 9+ messages in thread
From: Andy Wingo @ 2010-12-20 14:23 UTC (permalink / raw)
  To: Bruce Korb
  Cc: Bruce Korb, Noah Lavine, Libtool List, Nelson H. F. Beebe,
	guile-devel

Hi Bruce,

Sorry you and others have had to suffer through this.

On Mon 20 Dec 2010 15:09, Bruce Korb <bkorb@gnu.org> writes:

>   How much understanding of the machinery should be expected
>   of the hapless project builder?

I'm not sure, but:

> Nelson has been doing this stuff for quite a while and has
> reasonably good understanding of the process.  From that
> understanding, he made the assumption that a standard 64 bit
> "Red Hat Enterprise Linux Server release 5.5 (Tikanga)"
> installation would be compatible with installing Guile via
>    ./configure && make && sudo make install

This is incorrect, for RHEL and other systems which place 64-bit libs in
$prefix/lib64.  You will find hacks to set --libdir in almost all
packaging scripts.

> Perhaps we can strive to make the assumption correct
> in the future?

This idea is attractive, if it can be done. But this is more an autoconf
issue (setting $libdir) than a libtool issue, and it's not a Guile issue
at all :)

Cheers,

Andy

_______________________________________________
http://lists.gnu.org/mailman/listinfo/libtool


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: How does one specify linking to 64 bit libraries when there is a choice?
  2010-12-20 14:09     ` Bruce Korb
  2010-12-20 14:23       ` Andy Wingo
@ 2010-12-20 14:30       ` Ralf Corsepius
  2010-12-20 19:20       ` Ralf Wildenhues
  2 siblings, 0 replies; 9+ messages in thread
From: Ralf Corsepius @ 2010-12-20 14:30 UTC (permalink / raw)
  To: Bruce Korb
  Cc: Bruce Korb, Noah Lavine, Libtool List, Nelson H. F. Beebe,
	guile-devel

On 12/20/2010 03:09 PM, Bruce Korb wrote:
> On 12/19/10 20:40, Noah Lavine wrote:
>> Hello,
>>
>> I am not at all an expert on guile-config, but I will help if I can.
>
> Thank you to all who responded.
>
>> Usually if you have 64-bit libs in lib64, you have to pass --libdir
>> explicitly.
>
> We've now concluded that that is, indeed, the answer to the
> original question.  The fallout question:
>
>    How much understanding of the machinery should be expected
>    of the hapless project builder?
>
> Nelson has been doing this stuff for quite a while and has
> reasonably good understanding of the process.  From that
> understanding, he made the assumption that a standard 64 bit
> "Red Hat Enterprise Linux Server release 5.5 (Tikanga)"
> installation would be compatible with installing Guile via
>     ./configure&&  make&&  sudo make install
> and not wind up with a frumitzed `guile-config link` output.
> The assumption was incorrect and we now know that.
Correct, this assumption is incorrect.

(With my Fedora Packaging Committee member hat on) In Fedora and RHEL, 
users are supposed to pass
--libdir=/usr/lib64 to configure
on x86_64 and
--libdir=/usr/lib to configure
on i386.

Analogous conventions apply to other multilib'ed architectures.

Ralf

_______________________________________________
http://lists.gnu.org/mailman/listinfo/libtool


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: How does one specify linking to 64 bit libraries when there is a choice?
  2010-12-20 14:09     ` Bruce Korb
  2010-12-20 14:23       ` Andy Wingo
  2010-12-20 14:30       ` Ralf Corsepius
@ 2010-12-20 19:20       ` Ralf Wildenhues
  2010-12-20 19:25         ` Ralf Wildenhues
  2 siblings, 1 reply; 9+ messages in thread
From: Ralf Wildenhues @ 2010-12-20 19:20 UTC (permalink / raw)
  To: Bruce Korb; +Cc: Bruce Korb, Libtool List, Nelson H. F. Beebe, guile-devel

* Bruce Korb wrote on Mon, Dec 20, 2010 at 03:09:48PM CET:
>   How much understanding of the machinery should be expected
>   of the hapless project builder?

I've skimmed most of the conversation in this thread now.

The crucial part, I think, is *not* the --libdir setting.  Distros
usually get that consistent between their packages, and users should not
be using any of /usr/lib{,32,64} but rather something below /usr/local.

One crucial part is that libtool gets confused whenever it has
directories with the wrong ABI in the search path (unlike ld or ld.so,
both are in some cases smart enough to skip wrong ABI), which means that
either no instance of the build system machineries may introduce such
paths, or libtool needs to get smarter to ignore wrong ABI dirs.

The other crucial part is that libtool doesn't get the
sys_lib_search_path_spec and sys_lib_dlsearch_path_spec settings
right on several distros, introducing such wrong directories itself (not
to speak of cross setups).  There have been several proposed patches to
address this, e.g.
http://thread.gmane.org/gmane.comp.gnu.libtool.patches/10625
http://thread.gmane.org/gmane.comp.gnu.libtool.patches/9931
but I have yet to see one that solves it.

Thanks,
Ralf



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: How does one specify linking to 64 bit libraries when there is a choice?
  2010-12-20 19:20       ` Ralf Wildenhues
@ 2010-12-20 19:25         ` Ralf Wildenhues
  0 siblings, 0 replies; 9+ messages in thread
From: Ralf Wildenhues @ 2010-12-20 19:25 UTC (permalink / raw)
  To: Bruce Korb, Libtool List, guile-devel, Noah Lavine, Bruce Korb,
	"Nelson H. F. Beebe" <beebe@

* Ralf Wildenhues wrote on Mon, Dec 20, 2010 at 08:20:25PM CET:
> The other crucial part is that libtool doesn't get the
> sys_lib_search_path_spec and sys_lib_dlsearch_path_spec settings
> right on several distros, introducing such wrong directories itself (not
> to speak of cross setups).  There have been several proposed patches to
> address this, e.g.
> http://thread.gmane.org/gmane.comp.gnu.libtool.patches/10625
> http://thread.gmane.org/gmane.comp.gnu.libtool.patches/9931
> but I have yet to see one that solves it.

ESENDTOOSOON, sorry.

At least with current Libtool you can override wrong settings with the
lt_cv_sys_lib_search_path_spec and lt_cv_sys_lib_dlsearch_path_spec
cache variables.



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2010-12-20 19:25 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <CMM.0.95.0.1292615864.beebe@psi.math.utah.edu>
2010-12-17 20:10 ` How does one specify linking to 64 bit libraries when there is a choice? Bruce Korb
2010-12-20  4:40   ` Noah Lavine
2010-12-20 10:56     ` Andy Wingo
2010-12-20 14:09     ` Bruce Korb
2010-12-20 14:23       ` Andy Wingo
2010-12-20 14:30       ` Ralf Corsepius
2010-12-20 19:20       ` Ralf Wildenhues
2010-12-20 19:25         ` Ralf Wildenhues
     [not found] <AANLkTik3wAm4j4mqigf3-j0Kb=3HJ3OY-_sfhsiu3k-f@mail.gmail.com>
     [not found] ` <CMM.0.95.0.1292605766.beebe@psi.math.utah.edu>
2010-12-17 17:31   ` Bruce Korb

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).