On 4/16/07, nobu / ruby-lang.org <nobu / ruby-lang.org> wrote:
> Hi,
>
> At Tue, 17 Apr 2007 00:32:51 +0900,
> Michal Suchanek wrote in [ruby-core:10933]:
> > I tried building with LDFLAGS=-L/sw/lib which is the standard
> > way to build a package with libraries outside of system
> > library locations.
> >
> > There is apparently already a libruby_static in there because
> > the build has failed on an undefined symbol which was defined
> > in ./libruby_static.a
> >
> > I modified the Makefile so that it puts XLDFLAGS before
> > LDFLAGS. That way I get -L. -L/sw/lib and the build
> > works. However, if XLDFLAGS contained some linker options
> > meant to override options in LDFLAGS it would not work this
> > way.
>
> Do you consider that -L. always should take precedence to other
> linker flags?
>
Yes. And this should also apply to extensions. The mkmf tests are now
fine but the extension is linked with -L/sw/lib before -L../..

Test:
"gcc -o conftest -I../.. -I../../. -I../.././ext/gdbm -I/sw/include -g
-O2 -pipe -fno-common conftest.c  -L"../.." -L. -L/sw/lib
-lruby-static -lgdbm  -ldl -lobjc  "

Extension build:
gcc -I. -I../.. -I../../. -I../.././ext/gdbm -DHAVE_GDBM_H
-I/sw/include -fno-common -g -O2 -pipe -fno-common  -c gdbm.c
cc -dynamic -bundle -undefined suppress -flat_namespace -L. -L/sw/lib
 -L"../.." -o ../../.ext/i686-darwin8.9.1/gdbm.bundle gdbm.o  -lgdbm
-ldl -lobjc

It looks like the ruby library is not used anyway. However, I am not
sure this applies to all platforms.

Thanks

Michal