problems and patch for sco

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

problems and patch for sco

Joao Cardoso-8

Hi

There are two things that I always have to do to compile Octave on my
sco3.2v5.0.4 system.

1-I have to change the Makefile, octave target, and replace
   ../glob/libglob.a
with
   ../glob/glob.o ../glob/fnmatch.o

The reason is that my system has a buggy glob/fnmatch in libc.so, and so
fnmatch() and glob() are early resolved by the linker, with the result
that Octave libglob.a is never used. It does not matter where in the
command line ../glob/libglob.a appears.
This can't be solved except substituting the library by its two object
files.

   LIBGLOB='$(TOPDIR)/glob/glob.o $(TOPDIR)/glob/fnmatch.o'

After all the library only has two object files...

2-The other modification is that I have to prepend
LD_RUN_PATH=$LD_RUN_PATH:/usr/local/lib/octave-2.1.30 to $(CXX), also in
the octave target.
The reason is that -rpath is not supported by my system.
The only possibility that I see is to define a symbol for Makeconf.in,
configure.in and src/Makefile.in, LD_CXX e.g., that on all systems will
be equal to CXX, except on sco where it will be

LD_CXX="LD_RUN_PATH=$LD_RUN_PATH:$(octlibdir) $CXX"

The enclosed patch "correct" this problems and add some more
configuration  specific stuf to sco.

Thanks,
Joao

patch1 (3K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

problems and patch for sco

John W. Eaton-6
On  6-Jul-2000, Joao Cardoso <[hidden email]> wrote:

| There are two things that I always have to do to compile Octave on my
| sco3.2v5.0.4 system.
|
| 1-I have to change the Makefile, octave target, and replace
|    ../glob/libglob.a
| with
|    ../glob/glob.o ../glob/fnmatch.o
|
| The reason is that my system has a buggy glob/fnmatch in libc.so, and so
| fnmatch() and glob() are early resolved by the linker, with the result
| that Octave libglob.a is never used. It does not matter where in the
| command line ../glob/libglob.a appears.
| This can't be solved except substituting the library by its two object
| files.
|
|    LIBGLOB='$(TOPDIR)/glob/glob.o $(TOPDIR)/glob/fnmatch.o'
|
| After all the library only has two object files...

OK, I made this change.

Thanks,

jwe


Reply | Threaded
Open this post in threaded view
|

problems and patch for sco

John W. Eaton-6
In reply to this post by Joao Cardoso-8
On  6-Jul-2000, Joao Cardoso <[hidden email]> wrote:

| 2-The other modification is that I have to prepend
| LD_RUN_PATH=$LD_RUN_PATH:/usr/local/lib/octave-2.1.30 to $(CXX), also in
| the octave target.
| The reason is that -rpath is not supported by my system.
| The only possibility that I see is to define a symbol for Makeconf.in,
| configure.in and src/Makefile.in, LD_CXX e.g., that on all systems will
| be equal to CXX, except on sco where it will be
|
| LD_CXX="LD_RUN_PATH=$LD_RUN_PATH:$(octlibdir) $CXX"

Hmm.  It seems like it would be better to have a test that detects the
problem instead of just assuming that this will be required on all (or
even some) SCO systems.  On the other hand, it might not actually
cause any trouble.

| The enclosed patch "correct" this problems and add some more
| configuration  specific stuf to sco.

It seems the patch was missing from your message.  Can you please send
it again?

Thanks,

jwe


Reply | Threaded
Open this post in threaded view
|

Re: problems and patch for sco

Joao Cardoso-3
"John W. Eaton" wrote:

>
> On  6-Jul-2000, Joao Cardoso <[hidden email]> wrote:
>
> | 2-The other modification is that I have to prepend
> | LD_RUN_PATH=$LD_RUN_PATH:/usr/local/lib/octave-2.1.30 to $(CXX), also in
> | the octave target.
> | The reason is that -rpath is not supported by my system.
> | The only possibility that I see is to define a symbol for Makeconf.in,
> | configure.in and src/Makefile.in, LD_CXX e.g., that on all systems will
> | be equal to CXX, except on sco where it will be
> |
> | LD_CXX="LD_RUN_PATH=$LD_RUN_PATH:$(octlibdir) $CXX"
>
> Hmm.  It seems like it would be better to have a test that detects the
> problem instead of just assuming that this will be required on all (or
> even some) SCO systems.  On the other hand, it might not actually
> cause any trouble.
I only have sco-5.0.4. The current release is 5.0.5, but as far as I
know there is still no support for -rpath or equivalent. libtool, X11R6,
etc, all use this same method for sco.

>
> | The enclosed patch "correct" this problems and add some more
> | configuration  specific stuf to sco.
>
> It seems the patch was missing from your message.  Can you please send
> it again?

Sure, here it is against today cvs.

Thanks,
Joao

>
> Thanks,
>
> jwe

octave-cvs-sco.patch (3K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: problems and patch for sco

John W. Eaton-6
On 20-Jul-2000, Joao Cardoso <[hidden email]> wrote:

| "John W. Eaton" wrote:
| >
| > On  6-Jul-2000, Joao Cardoso <[hidden email]> wrote:
| >
| > | 2-The other modification is that I have to prepend
| > | LD_RUN_PATH=$LD_RUN_PATH:/usr/local/lib/octave-2.1.30 to $(CXX), also in
| > | the octave target.
| > | The reason is that -rpath is not supported by my system.
| > | The only possibility that I see is to define a symbol for Makeconf.in,
| > | configure.in and src/Makefile.in, LD_CXX e.g., that on all systems will
| > | be equal to CXX, except on sco where it will be
| > |
| > | LD_CXX="LD_RUN_PATH=$LD_RUN_PATH:$(octlibdir) $CXX"
| >
| > Hmm.  It seems like it would be better to have a test that detects the
| > problem instead of just assuming that this will be required on all (or
| > even some) SCO systems.  On the other hand, it might not actually
| > cause any trouble.
|
| I only have sco-5.0.4. The current release is 5.0.5, but as far as I
| know there is still no support for -rpath or equivalent. libtool, X11R6,
| etc, all use this same method for sco.
|
| >
| > | The enclosed patch "correct" this problems and add some more
| > | configuration  specific stuf to sco.
| >
| > It seems the patch was missing from your message.  Can you please send
| > it again?
|
| Sure, here it is against today cvs.

Thanks.  Actually, I was wrong, your patch was not missing, but I
didn't see it when I replied (my mailer omitted it, which I didn't
expect) so I thought it was missing.

In any case, I applied it with the following changes.  I used

  LD_CXX='$CXX'
  LD_CXX='LD_RUN_PATH=$LD_RUN_PATH:$(octlibdir) $(CXX)'

instead of

  LD_CXX="$CXX"
  LD_CXX="LD_RUN_PATH=$LD_RUN_PATH:$(octlibdir) $CXX"

so that the expansions will take place when make is run instead of
at configure time.

Next time, can you please submit a ChangeLog entry too?

Thanks,

jwe