Re: __sF

2002-11-03 Thread Juli Mallett
* De: Steve Kargl [EMAIL PROTECTED] [ Data: 2002-11-02 ]
[ Subjecte: Re: __sF ]
 On Sat, Nov 02, 2002 at 05:40:08PM -0700, M. Warner Losh wrote:
  In message: [EMAIL PROTECTED]
  Steve Kargl [EMAIL PROTECTED] writes:
  : http://www.freebsd.org/cgi/getmsg.cgi?fetch=1755928+1759974+/usr/local/\
  : www/db/text/2002/freebsd-current/20021013.freebsd-current
  
  You should be linking against the -stable versions of these items as
  well as the libc.so.4.  If you don't, then you are asking for
  problems.  Maybe you can kludge it to make libc.so.5 work, but the
  whole reason that it is .5 and not .4 is that it is not binary
  compatible with .4, and for more reasons than just __sF.
  
 
 Fine, I'll try to set up a cross build enviroment.
 But, we need to then install a complete set of 4.x
 libraries in /usr/lib/compat.

No, that's for runtime compatability.  You want a true cross environment.

Read any of the thousands of pages about setting up GCC for cross-platform
development, as that's what you're doing.  You just happen to have a chance
of running the cross-created things locally.

juli.
-- 
Juli Mallett [EMAIL PROTECTED]   | FreeBSD: The Power To Serve
Will break world for fulltime employment. | finger [EMAIL PROTECTED]
http://people.FreeBSD.org/~jmallett/  | Support my FreeBSD hacking!

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-03 Thread Steve Kargl
On Sun, Nov 03, 2002 at 03:29:04AM -0800, Juli Mallett wrote:
 * De: Steve Kargl [EMAIL PROTECTED] [ Data: 2002-11-02 ]
   [ Subjecte: Re: __sF ]
  On Sat, Nov 02, 2002 at 05:40:08PM -0700, M. Warner Losh wrote:
   In message: [EMAIL PROTECTED]
   
   You should be linking against the -stable versions of these items as
   well as the libc.so.4.  If you don't, then you are asking for
   problems.  Maybe you can kludge it to make libc.so.5 work, but the
   whole reason that it is .5 and not .4 is that it is not binary
   compatible with .4, and for more reasons than just __sF.
  
  Fine, I'll try to set up a cross build enviroment.
  But, we need to then install a complete set of 4.x
  libraries in /usr/lib/compat.
 
 No, that's for runtime compatability.  You want a true cross environment.
 
 Read any of the thousands of pages about setting up GCC for cross-platform
 development, as that's what you're doing.  You just happen to have a chance
 of running the cross-created things locally.
 

Let's say I have an 4.7 app linked against libcam.so.
Now, I update to 5.0.  What library will this app use?
There isn't a COMPAT4X library available and the 5.0
has the same version number and libcam.so has a 
reference to __sF.  There probably aren't many apps
that use libcam, so this is perhaps stretch.  Well,
consider libm.so and the 8000 ports.

As to my particular problem, a cross-platform
environment won't be of much use because NAG
hard-coded several paths into their app, e.g.,
/usr/bin/cc.

-- 
Steve

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-03 Thread Juli Mallett
* De: Steve Kargl [EMAIL PROTECTED] [ Data: 2002-11-03 ]
[ Subjecte: Re: __sF ]
 As to my particular problem, a cross-platform
 environment won't be of much use because NAG
 hard-coded several paths into their app, e.g.,
 /usr/bin/cc.

Then you should seriously consider the quality of such application, or
whether you'd be better using it on an actual and supported platform.

Anything less would be uncivilised.  (Seriously)
-- 
Juli Mallett [EMAIL PROTECTED]   | FreeBSD: The Power To Serve
Will break world for fulltime employment. | finger [EMAIL PROTECTED]
http://people.FreeBSD.org/~jmallett/  | Support my FreeBSD hacking!

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-03 Thread Steve Kargl
On Sun, Nov 03, 2002 at 09:28:24AM -0800, Juli Mallett wrote:
 * De: Steve Kargl [EMAIL PROTECTED] [ Data: 2002-11-03 ]
   [ Subjecte: Re: __sF ]
  As to my particular problem, a cross-platform
  environment won't be of much use because NAG
  hard-coded several paths into their app, e.g.,
  /usr/bin/cc.
 
 Then you should seriously consider the quality of such application, or
 whether you'd be better using it on an actual and supported platform.
 
 Anything less would be uncivilised.  (Seriously)

This is the *only* native Fortran 95 compiler for FreeBSD.
So much for acceptance of FreeBSD by commerical vendors.

-- 
Steve

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-03 Thread M. Warner Losh
In message: [EMAIL PROTECTED]
Juli Mallett [EMAIL PROTECTED] writes:
: Then you should seriously consider the quality of such application, or
: whether you'd be better using it on an actual and supported platform.
: 
: Anything less would be uncivilised.  (Seriously)

Sometimes you have no chocie in what you accept or not.

Warner

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-03 Thread Juli Mallett
* De: Steve Kargl [EMAIL PROTECTED] [ Data: 2002-11-03 ]
[ Subjecte: Re: __sF ]
 On Sun, Nov 03, 2002 at 09:28:24AM -0800, Juli Mallett wrote:
  * De: Steve Kargl [EMAIL PROTECTED] [ Data: 2002-11-03 ]
  [ Subjecte: Re: __sF ]
   As to my particular problem, a cross-platform
   environment won't be of much use because NAG
   hard-coded several paths into their app, e.g.,
   /usr/bin/cc.
  
  Then you should seriously consider the quality of such application, or
  whether you'd be better using it on an actual and supported platform.
  
  Anything less would be uncivilised.  (Seriously)
 
 This is the *only* native Fortran 95 compiler for FreeBSD.
   ^ 4.x
-- 
Juli Mallett [EMAIL PROTECTED]   | FreeBSD: The Power To Serve
Will break world for fulltime employment. | finger [EMAIL PROTECTED]
http://people.FreeBSD.org/~jmallett/  | Support my FreeBSD hacking!

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread Mark Murray
   In both cases, FreeBSD doesn't seem to like __sF.

This is being discussed /ad nauseam/ on the lists. If you are running
CURRENT, the onus is on you to keep up with developments. :-)

   Now, the first time this happened, I simply cvsuped a couple days
 later and the problem went away, but now it's back, which is making me
 think I never really solved the problem the first time around.
 
   Any ideas on how to permanently fix this problem?

Rebuild _everything_. Ports, libraries, dependancies, the lot.

M
-- 
o   Mark Murray
\_
O.\_Warning: this .sig is umop ap!sdn

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread Adam K Kirchhoff

On Sat, 2 Nov 2002, Mark Murray wrote:

  In both cases, FreeBSD doesn't seem to like __sF.

 This is being discussed /ad nauseam/ on the lists. If you are running
 CURRENT, the onus is on you to keep up with developments. :-)

True.  A few days after the first time I encountered this problem, I had
searched through the archives and seen a very recent discussion about how
it was fixed it -CURRENT about two days after I had upgraded.  So I
upgraded again and, indeed, the problem was fixed.

And this past time, though, I did check out the archives again...  I came
across this post:

http://www.freebsd.org/cgi/getmsg.cgi?fetch=1438233+1440468+/usr/local/www/db/text/2002/freebsd-current/20021020.freebsd-current

It indicated that __sF was added back into libc.

  Now, the first time this happened, I simply cvsuped a couple days
  later and the problem went away, but now it's back, which is making me
  think I never really solved the problem the first time around.
 
  Any ideas on how to permanently fix this problem?

 Rebuild _everything_. Ports, libraries, dependancies, the lot.

So is the current position on the matter that __sF is going to remain out
of libc?  If that's the case, fine, I have no objections to recompiling
all my ports, but the fact of the matter is that there doesn't seem to be
much agreement about whether or not that's the case, seeing how __sF keeps
getting removed and re-added.

Adam



To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread Kris Kennaway
On Sat, Nov 02, 2002 at 10:35:03AM -0500, Adam K Kirchhoff wrote:

 So is the current position on the matter that __sF is going to remain out
 of libc?

Yes.

Kris



msg45920/pgp0.pgp
Description: PGP signature


Re: __sF

2002-11-02 Thread Steve Kargl
On Sat, Nov 02, 2002 at 09:47:26AM -0800, Kris Kennaway wrote:
 On Sat, Nov 02, 2002 at 10:35:03AM -0500, Adam K Kirchhoff wrote:
 
  So is the current position on the matter that __sF is going to remain out
  of libc?
 
 Yes.
 

This will break some commercially available software that
can't easily replaced.

kargl[248] f95 -V a.f90
NAGWare Fortran 95 compiler Release 4.2(468)
Copyright 1990-2002 The Numerical Algorithms Group Ltd., Oxford, U.K.
f95comp version is 4.2(468)
/usr/local/lib/NAGWare/libf96.so: undefined reference to `__sF'
collect2: ld returned 1 exit status

I seriously doubt that NAG will support both a 
4.x and 5.x version of their compiler.

-- 
Steve

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread Will Andrews
On Sat, Nov 02, 2002 at 10:10:31AM -0800, Steve Kargl wrote:
 This will break some commercially available software that
 can't easily replaced.
 
 kargl[248] f95 -V a.f90
 NAGWare Fortran 95 compiler Release 4.2(468)
 Copyright 1990-2002 The Numerical Algorithms Group Ltd., Oxford, U.K.
 f95comp version is 4.2(468)
 /usr/local/lib/NAGWare/libf96.so: undefined reference to `__sF'
 collect2: ld returned 1 exit status
 
 I seriously doubt that NAG will support both a 
 4.x and 5.x version of their compiler.

That's why we have compat libs.  compat4x should handle this
unless I'm mistaken.

Regards,
-- 
wca

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread Steve Kargl
On Sat, Nov 02, 2002 at 10:58:41AM -0800, Will Andrews wrote:
 On Sat, Nov 02, 2002 at 10:10:31AM -0800, Steve Kargl wrote:
  This will break some commercially available software that
  can't easily replaced.
  
  kargl[248] f95 -V a.f90
  NAGWare Fortran 95 compiler Release 4.2(468)
  Copyright 1990-2002 The Numerical Algorithms Group Ltd., Oxford, U.K.
  f95comp version is 4.2(468)
  /usr/local/lib/NAGWare/libf96.so: undefined reference to `__sF'
  collect2: ld returned 1 exit status
  
  I seriously doubt that NAG will support both a 
  4.x and 5.x version of their compiler.
 
 That's why we have compat libs.  compat4x should handle this
 unless I'm mistaken.
 

It doesn't work the way you think.  To understand the issues

http://www.freebsd.org/cgi/getmsg.cgi?fetch=1755928+1759974+/usr/local/\
www/db/text/2002/freebsd-current/20021013.freebsd-current

-- 
Steve

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread Mark Murray
 I seriously doubt that NAG will support both a 
 4.x and 5.x version of their compiler.

This shouldn't be a problem. The commercial software Should Not Be(tm)
supporting something as variable as CURRENT, and with the STABLE libraries
around in COMPAT mode, the compiler Will Just Work(tm) (or should with
not much effort).

By the time __sF is mainstream, I guess the vendor will have adapted
their product to match. Win, win.

M
-- 
o   Mark Murray
\_
O.\_Warning: this .sig is umop ap!sdn

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread Steve Kargl
On Sat, Nov 02, 2002 at 07:06:47PM +, Mark Murray wrote:
  I seriously doubt that NAG will support both a 
  4.x and 5.x version of their compiler.
 
 This shouldn't be a problem. The commercial software Should Not Be(tm)
 supporting something as variable as CURRENT, and with the STABLE libraries
 around in COMPAT mode, the compiler Will Just Work(tm) (or should with
 not much effort).
 
 By the time __sF is mainstream, I guess the vendor will have adapted
 their product to match. Win, win.
 

No, it does not just work.  The NAG f95 compiler generates a
C file.  The C file is compiled by gcc.

f95 -o a a.f90 

is equivalent to 

f95 -c -o a.c a.f90
gcc -o a a.c -lf96 -lm -lc

libf96.so is linked against libc.so, which is a symlink
to libc.so.4 on a 4.x system.  libm.so and libc.so are
symlinks that point to libm.so.2 and libc.so.5 on 5.x.
You pick up the wrong libc.so in the above line.

-- 
Steve

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread Marcel Moolenaar
On Sat, Nov 02, 2002 at 11:24:32AM -0800, Steve Kargl wrote:
 On Sat, Nov 02, 2002 at 07:06:47PM +, Mark Murray wrote:
   I seriously doubt that NAG will support both a 
   4.x and 5.x version of their compiler.
  
  This shouldn't be a problem. The commercial software Should Not Be(tm)
  supporting something as variable as CURRENT, and with the STABLE libraries
  around in COMPAT mode, the compiler Will Just Work(tm) (or should with
  not much effort).
  
  By the time __sF is mainstream, I guess the vendor will have adapted
  their product to match. Win, win.
  
 
 No, it does not just work.  The NAG f95 compiler generates a
 C file.  The C file is compiled by gcc.
 
 f95 -o a a.f90 
 
 is equivalent to 
 
 f95 -c -o a.c a.f90
 gcc -o a a.c -lf96 -lm -lc
 
 libf96.so is linked against libc.so, which is a symlink
 to libc.so.4 on a 4.x system.  libm.so and libc.so are
 symlinks that point to libm.so.2 and libc.so.5 on 5.x.
 You pick up the wrong libc.so in the above line.

I see where this is breaking. The compat libs work because binaries
are already linked against them. What you're describing is a need to
link against libc.so.4 whilst on a -current box. Much the same as
developing under the Linuxulator: you're not using the native bits.

The problem is not unsolvable, but you also need the 4.x headers
to make it work. The first hurdle is getting NAG f90 to pick up a
random C compiler. The random C compiler then has to pick up the
4.x headers and libraries by having an alternate system includes
and libraries path. With GCC this should be simple enough.

-- 
 Marcel Moolenaar USPA: A-39004  [EMAIL PROTECTED]

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread Peter Wemm
Steve Kargl wrote:
 On Sat, Nov 02, 2002 at 07:06:47PM +, Mark Murray wrote:
   I seriously doubt that NAG will support both a 
   4.x and 5.x version of their compiler.
  
  This shouldn't be a problem. The commercial software Should Not Be(tm)
  supporting something as variable as CURRENT, and with the STABLE libraries
  around in COMPAT mode, the compiler Will Just Work(tm) (or should with
  not much effort).
  
  By the time __sF is mainstream, I guess the vendor will have adapted
  their product to match. Win, win.
  
 
 No, it does not just work.  The NAG f95 compiler generates a
 C file.  The C file is compiled by gcc.
 
 f95 -o a a.f90 
 
 is equivalent to 
 
 f95 -c -o a.c a.f90
 gcc -o a a.c -lf96 -lm -lc
 
 libf96.so is linked against libc.so, which is a symlink
 to libc.so.4 on a 4.x system.  libm.so and libc.so are
 symlinks that point to libm.so.2 and libc.so.5 on 5.x.
 You pick up the wrong libc.so in the above line.

This is also solveable by setting a strategic symlink from libc.so -
/usr/lib/compat/libc.so.4 in the f95 backend's search path.

Does it do a gcc -o a a.c -L /usr/local/lib/f95 -lf96 -lm -lc or something
like that?  If so, you can put the libc.so symlink in there.

I assume that the generated code doesn't contain #includes...  If it does
you'll also need to do something about that so that you get the right
#includes.  libf96.so is a 4.x binary.  Even if it wasn't for __sF, you
should be compiling with 4.x libraries and (if needed) 4.x headers, because
you have parts of the 4.x stdio.h embedded in libf96.so.

Cheers,
-Peter
--
Peter Wemm - [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED]
All of this is for nothing if we don't go to the stars - JMS/B5


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread Steve Kargl
On Sat, Nov 02, 2002 at 12:00:42PM -0800, Marcel Moolenaar wrote:
 On Sat, Nov 02, 2002 at 11:24:32AM -0800, Steve Kargl wrote:
  
  No, it does not just work.  The NAG f95 compiler generates a
  C file.  The C file is compiled by gcc.
  
  f95 -o a a.f90 
  
  is equivalent to 
  
  f95 -c -o a.c a.f90
  gcc -o a a.c -lf96 -lm -lc
  
  libf96.so is linked against libc.so, which is a symlink
  to libc.so.4 on a 4.x system.  libm.so and libc.so are
  symlinks that point to libm.so.2 and libc.so.5 on 5.x.
  You pick up the wrong libc.so in the above line.
 
 I see where this is breaking. The compat libs work because binaries
 are already linked against them. What you're describing is a need to
 link against libc.so.4 whilst on a -current box. Much the same as
 developing under the Linuxulator: you're not using the native bits.
 
 The problem is not unsolvable, but you also need the 4.x headers
 to make it work. The first hurdle is getting NAG f90 to pick up a
 random C compiler. The random C compiler then has to pick up the
 4.x headers and libraries by having an alternate system includes
 and libraries path. With GCC this should be simple enough.
 

That's exactly the problem.  I haven't been able to 
state it in the same manner as you.

Alfred just committed a make.conf knob, WANT_COMPAT4_STDIO,
that permits libc to be built with __sF visible outside of 
libc.  I suspect most people will not need the knob, but
it will allow commercial apps to run if need be.

-- 
Steve

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread Steve Kargl
On Sat, Nov 02, 2002 at 12:06:38PM -0800, Peter Wemm wrote:
 
 This is also solveable by setting a strategic symlink from libc.so -
 /usr/lib/compat/libc.so.4 in the f95 backend's search path.
 
 Does it do a gcc -o a a.c -L /usr/local/lib/f95 -lf96 -lm -lc or something
 like that?  If so, you can put the libc.so symlink in there.
 
 I assume that the generated code doesn't contain #includes...  If it does
 you'll also need to do something about that so that you get the right
 #includes.  libf96.so is a 4.x binary.  Even if it wasn't for __sF, you
 should be compiling with 4.x libraries and (if needed) 4.x headers, because
 you have parts of the 4.x stdio.h embedded in libf96.so.
 

The only include that I any aware of is f95.h
which mainly defines stuff in libf95 (e.g.,
a typedef for struct nagf95_complex).

The verbose compiler output is below.  Note,
that the crt* files are also 5.x instead of
4.x.  Maybe it's just good fortune, but NAG's
f95 compiler works great on 5.x (except for
the __sF snafu).

-- 
Steve

kargl[226] f95 -v -Wc,-v -Wl,-v a.f90
a.f90:
Using built-in specs.
Configured with: FreeBSD/i386 system compiler
Thread model: posix
gcc version 3.2.1 [FreeBSD] 20021009 (prerelease)
 /usr/libexec/cc1 -lang-c -v -I/usr/local/lib/NAGWare -D__GNUC__=3 -D__GNUC_MINOR__=2 
-D__GNUC_PATCHLEVEL__=1 -D__GXX_ABI_VERSION=102 -D__FreeBSD__=5 
-D__FreeBSD_cc_version=54 -Dunix -D__KPRINTF_ATTRIBUTE__ -D__FreeBSD__=5 
-D__FreeBSD_cc_version=54 -D__unix__ -D__KPRINTF_ATTRIBUTE__ -D__unix 
-Asystem=unix -Asystem=bsd -Asystem=FreeBSD -D__NO_INLINE__ -D__STDC_HOSTED__=1 
-Acpu=i386 -Amachine=i386 -Di386 -D__i386 -D__i386__ -D__tune_i386__ -D__ELF__ 
-D_LONGLONG -DBSD -DANSI_C -DINT64=long long -DPOW_IS_INACCURATE /var/tmp/a.051193.c 
-quiet -dumpbase a.051193.c -version -fsigned-char -o /var/tmp/cczLSErX.s
GNU CPP version 3.2.1 [FreeBSD] 20021009 (prerelease) (cpplib) (i386 FreeBSD/ELF)
GNU C version 3.2.1 [FreeBSD] 20021009 (prerelease) (i386-undermydesk-freebsd)
compiled by GNU C version 3.2.1 [FreeBSD] 20021009 (prerelease).
ignoring duplicate directory /usr/include
#include ... search starts here:
#include ... search starts here:
 /usr/local/lib/NAGWare
 /usr/include
End of search list.
 /usr/bin/as -v -o a.o /var/tmp/cczLSErX.s
GNU assembler version 2.13 [FreeBSD] 2002-10-10 (i386-obrien-freebsd5.0) using BFD 
version 2.13 [FreeBSD] 2002-10-10
Loading...
Using built-in specs.
Configured with: FreeBSD/i386 system compiler
Thread model: posix
gcc version 3.2.1 [FreeBSD] 20021009 (prerelease)
 /usr/libexec/collect2 -V -dynamic-linker /usr/libexec/ld-elf.so.1 /usr/lib/crt1.o 
/usr/lib/crti.o /usr/lib/crtbegin.o -L/usr/lib /usr/local/lib/NAGWare/quickfit.o a.o 
-rpath /usr/local/lib/NAGWare /usr/local/lib/NAGWare/libf96.so 
/usr/local/lib/NAGWare/libf96.a -lm -lgcc -lc -lgcc /usr/lib/crtend.o /usr/lib/crtn.o
GNU ld version 2.13 [FreeBSD] 2002-10-10
  Supported emulations:
   elf_i386_fbsd

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread Mark Murray
  By the time __sF is mainstream, I guess the vendor will have adapted
  their product to match. Win, win.
  
 
 No, it does not just work.  The NAG f95 compiler generates a
 C file.  The C file is compiled by gcc.

How about much effort? there _has_ to be some kind of way to
specify which C library to use.

M
-- 
o   Mark Murray
\_
O.\_Warning: this .sig is umop ap!sdn

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread Steve Kargl
On Sat, Nov 02, 2002 at 08:42:35PM +, Mark Murray wrote:
   By the time __sF is mainstream, I guess the vendor will have adapted
   their product to match. Win, win.
   
  
  No, it does not just work.  The NAG f95 compiler generates a
  C file.  The C file is compiled by gcc.
 
 How about much effort? there _has_ to be some kind of way to
 specify which C library to use.
 

The only work-around I know is documented in (watch the line wrap) 

http://www.freebsd.org/cgi/getmsg.cgi?fetch=1755928+1759974+/usr/local/www\
/db/text/2002/freebsd-current/20021013.freebsd-current

To recap, I can do

f95 -c hello.f90
gcc -v -o hello -nostdlib  \
   /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtbegin.o \
   /usr/local/lib/NAGWare/quickfit.o hello.o /usr/local/lib/NAGWare/libf96.so\
   -lm \
   /usr/home/karg/tmp/minpack/lib/libc.so \
   /usr/lib/crtend.o /usr/lib/crtn.o

But, the 2nd and 6th lines in the gcc command use the crt* files
from freebsd-current.  The math library, -lm, is also from 
freebsd-current.  /usr/lib/compat does contains neither a 4.x math
library nor the crt* files.  The libc.so in the above is a 
symlink

kargl[274] ldd hello
hello:
libf96.so.1 = /usr/local/lib/NAGWare/libf96.so.1 (0x2806b000)
libm.so.2 = /usr/lib/libm.so.2 (0x2810b000)
libc.so.4 = /usr/lib/compat/libc.so.4 (0x28129000)



-- 
Steve

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread Matthew N. Dodd
On Sat, 2 Nov 2002, Mark Murray wrote:
 This shouldn't be a problem. The commercial software Should Not Be(tm)
 supporting something as variable as CURRENT, and with the STABLE libraries
 around in COMPAT mode, the compiler Will Just Work(tm) (or should with
 not much effort).

 By the time __sF is mainstream, I guess the vendor will have adapted
 their product to match. Win, win.

This isn't the case for one piece of vendor software that I'm not allowed
to talk about.

-- 
| Matthew N. Dodd  | '78 Datsun 280Z | '75 Volvo 164E | FreeBSD/NetBSD  |
| [EMAIL PROTECTED] |   2 x '84 Volvo 245DL| ix86,sparc,pmax |
| http://www.jurai.net/~winter |  For Great Justice!  | ISO8802.5 4ever |


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread Steve Kargl
On Sat, Nov 02, 2002 at 06:15:09PM -0500, Matthew N. Dodd wrote:
 On Sat, 2 Nov 2002, Mark Murray wrote:
  This shouldn't be a problem. The commercial software Should Not Be(tm)
  supporting something as variable as CURRENT, and with the STABLE libraries
  around in COMPAT mode, the compiler Will Just Work(tm) (or should with
  not much effort).
 
  By the time __sF is mainstream, I guess the vendor will have adapted
  their product to match. Win, win.
 
 This isn't the case for one piece of vendor software that I'm not allowed
 to talk about.
 

See the new WANT_COMPAT4_STDIO make.conf knob.

-- 
Steve

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread Matthew N. Dodd
On Sat, 2 Nov 2002, Steve Kargl wrote:
 On Sat, Nov 02, 2002 at 06:15:09PM -0500, Matthew N. Dodd wrote:
  This isn't the case for one piece of vendor software that I'm not allowed
  to talk about.

 See the new WANT_COMPAT4_STDIO make.conf knob.

This won't be acceptable as the vender will likely not be producing a
separate 5.0 build (ie the same build needs to run on both.) until 4.x is
EOLed.  Forcing people to rebuild libc seems a high barrier to entry.

-- 
| Matthew N. Dodd  | '78 Datsun 280Z | '75 Volvo 164E | FreeBSD/NetBSD  |
| [EMAIL PROTECTED] |   2 x '84 Volvo 245DL| ix86,sparc,pmax |
| http://www.jurai.net/~winter |  For Great Justice!  | ISO8802.5 4ever |


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread Marcel Moolenaar
On Sat, Nov 02, 2002 at 12:22:38PM -0800, Steve Kargl wrote:
 
 The verbose compiler output is below.  Note,
 that the crt* files are also 5.x instead of
 4.x.  Maybe it's just good fortune, but NAG's
 f95 compiler works great on 5.x (except for
 the __sF snafu).

Yes. The knob may help you now, but there's no guarantee that you'll
get hosed later on. Probably the easiest *real* solution would be
to build gcc on a 4.x machine and have it installed under /usr/local.
It will have a FQ name like i386-unknown-freebsd4.0-gcc. That version
has default paths for both includes and libraries in the gcc tree
rooted under /usr/local. You can populate that tree with headers and
libraries found on 4.x machine and then move it over (or NFS export
it) to your 5.x box.

In short: you've set yourself up for crossbuilding...

-- 
 Marcel Moolenaar USPA: A-39004  [EMAIL PROTECTED]

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread Steve Kargl
On Sat, Nov 02, 2002 at 06:36:31PM -0500, Matthew N. Dodd wrote:
 On Sat, 2 Nov 2002, Steve Kargl wrote:
  On Sat, Nov 02, 2002 at 06:15:09PM -0500, Matthew N. Dodd wrote:
   This isn't the case for one piece of vendor software that I'm not allowed
   to talk about.
 
  See the new WANT_COMPAT4_STDIO make.conf knob.
 
 This won't be acceptable as the vender will likely not be producing a
 separate 5.0 build (ie the same build needs to run on both.) until 4.x is
 EOLed.  Forcing people to rebuild libc seems a high barrier to entry.
 

Maybe I misunderstand you.  But, a person running FreeBSD 5.x,
who wants to runs this vendor's 4.x software, will need to
build their libc with WANT_COMPAT4_STDIO defined if this
product needs to see __sF.

This is my exact problem.  I have NAG's Fortran 95 compiler,
which was built for FreeBSD 4.2.  I ran it on 5.0 without a
problem until __sF was made static.  NAG may never release
a 5.x version of their compiler because it may not be cost
effective.  This is a compromise to move forward with the
elimination of the visibility of __sF.

-- 
Steve

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread Juli Mallett
* De: Matthew N. Dodd [EMAIL PROTECTED] [ Data: 2002-11-02 ]
[ Subjecte: Re: __sF ]
 On Sat, 2 Nov 2002, Steve Kargl wrote:
  On Sat, Nov 02, 2002 at 06:15:09PM -0500, Matthew N. Dodd wrote:
   This isn't the case for one piece of vendor software that I'm not allowed
   to talk about.
 
  See the new WANT_COMPAT4_STDIO make.conf knob.
 
 This won't be acceptable as the vender will likely not be producing a
 separate 5.0 build (ie the same build needs to run on both.) until 4.x is
 EOLed.  Forcing people to rebuild libc seems a high barrier to entry.

Not making a clean break by default (i.e. not requiring a rebuild to get
the backwards behaviour) causes this to cascade.

But it worked in 4.x = Well then by golly it will in 5.0!
But it works in 5.0 = Then we'll keep it around for 5.x
But it worked in 5.x! = We'll make it tunable (on), but have rtld whine!
But it worked in 6.0, despite that rtld bug!

etc.

Look how long it took Microsoft to deprecate MS DOS apps.  It took until
they switched to an entirely new kernel (for the product line) and rebadged
the hell out of it.

I much prefer the idea of move onward, provide a backward solution if someone
really needs it...  Would it satisfy you to see a port, h0h0libc?

Solutions like that can't be guaranteed to work for (N+X).0 systems, to provide
vendor _libraries_ to link in a non-cross environment, where N is the system
the libraries are for, and where X is some number greater than one.

Keep in mind this only affects linking a closed library, and that this situation
is a bit absurd, given that a reasonable solution exists, and if necessary,
can be packaged up nicely...  Developers using this sort of environment are
asking for trouble.  It seems to me a serious developer will develop where the
tools are working and supported (keep in mind this is a issue with a vendor
LIBRARY being LINKED in, not a TOOL being USED), or set up a proper cross-env
to target the platform where the library is targettted, or will force their
vendor to support the new platform they (for whatever reason) see fit to
develop on.

[ I promise the rest of this won't be something someone will try to construe
  as a bikeshed. ]

juli.
--
Juli Mallett [EMAIL PROTECTED]

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread Steve Kargl
On Sat, Nov 02, 2002 at 04:19:10PM -0800, Juli Mallett wrote:
 
 Keep in mind this only affects linking a closed library, and that this
 situation is a bit absurd, given that a reasonable solution exists, and
 if necessary, can be packaged up nicely...

A bit absurd?  Can you explain why it is absurb and can you
give me the reasonable solution that you have?

 Developers using this sort of environment are asking for trouble.  It
 seems to me a serious developer will develop where the tools are working
 and supported (keep in mind this is a issue with a vendor LIBRARY being
 LINKED in, not a TOOL being USED),

The TOOL was working fine until __sF was made static.

 or set up a proper cross-env to target the platform where the library
 is targettted

This is what I guess we'll have to do.

 or will force their vendor to support the new platform they
 (for whatever reason) see fit to develop on.

Force the vendor to support the new platform?  No, this will
most likely cause the vendor to abandon the FreeBSD platform.
So much for encouraging commercial support for FreeBSD.

-- 
Steve

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread M. Warner Losh
In message: [EMAIL PROTECTED]
Steve Kargl [EMAIL PROTECTED] writes:
: On Sat, Nov 02, 2002 at 09:47:26AM -0800, Kris Kennaway wrote:
:  On Sat, Nov 02, 2002 at 10:35:03AM -0500, Adam K Kirchhoff wrote:
:  
:   So is the current position on the matter that __sF is going to remain out
:   of libc?
:  
:  Yes.
:  
: 
: This will break some commercially available software that
: can't easily replaced.
: 
: kargl[248] f95 -V a.f90
: NAGWare Fortran 95 compiler Release 4.2(468)
: Copyright 1990-2002 The Numerical Algorithms Group Ltd., Oxford, U.K.
: f95comp version is 4.2(468)
: /usr/local/lib/NAGWare/libf96.so: undefined reference to `__sF'
: collect2: ld returned 1 exit status
: 
: I seriously doubt that NAG will support both a 
: 4.x and 5.x version of their compiler.

Then you should force it to link with libc.so.4.  That's the version
of libc that it build libf96.so against, so you are taking a big
chance having it use libc.so.5.

Warner

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread M. Warner Losh
In message: [EMAIL PROTECTED]
Steve Kargl [EMAIL PROTECTED] writes:
: http://www.freebsd.org/cgi/getmsg.cgi?fetch=1755928+1759974+/usr/local/\
: www/db/text/2002/freebsd-current/20021013.freebsd-current

You should be linking against the -stable versions of these items as
well as the libc.so.4.  If you don't, then you are asking for
problems.  Maybe you can kludge it to make libc.so.5 work, but the
whole reason that it is .5 and not .4 is that it is not binary
compatible with .4, and for more reasons than just __sF.

Warner

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread M. Warner Losh
In message: [EMAIL PROTECTED]
Steve Kargl [EMAIL PROTECTED] writes:
: On Sat, Nov 02, 2002 at 06:15:09PM -0500, Matthew N. Dodd wrote:
:  On Sat, 2 Nov 2002, Mark Murray wrote:
:   This shouldn't be a problem. The commercial software Should Not Be(tm)
:   supporting something as variable as CURRENT, and with the STABLE libraries
:   around in COMPAT mode, the compiler Will Just Work(tm) (or should with
:   not much effort).
:  
:   By the time __sF is mainstream, I guess the vendor will have adapted
:   their product to match. Win, win.
:  
:  This isn't the case for one piece of vendor software that I'm not allowed
:  to talk about.
:  
: 
: See the new WANT_COMPAT4_STDIO make.conf knob.

But that knob is a total kludge and *WRONG* for this case.  It lets
things link, but you are still cross threading 4.x and 5.x binaries,
which is asking to be shot in the foot.

Warner

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread M. Warner Losh
In message: [EMAIL PROTECTED]
Steve Kargl [EMAIL PROTECTED] writes:
: Maybe I misunderstand you.  But, a person running FreeBSD 5.x,
: who wants to runs this vendor's 4.x software, will need to
: build their libc with WANT_COMPAT4_STDIO defined if this
: product needs to see __sF.

All that kludge does is to allow a program that shouldn't be allowed
to link to link.  You need to setup to compile 4.x binaries on the 5.x
machine, or you will lose in the long run.  __sF is only the first of
many issues, some subtle, that you'll face cross-threading 4.x and 5.x
libraries.

Warner

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread Marcel Moolenaar
On Sat, Nov 02, 2002 at 03:58:14PM -0800, Steve Kargl wrote:
  
   See the new WANT_COMPAT4_STDIO make.conf knob.
  
  This won't be acceptable as the vender will likely not be producing a
  separate 5.0 build (ie the same build needs to run on both.) until 4.x is
  EOLed.  Forcing people to rebuild libc seems a high barrier to entry.
  
 
 Maybe I misunderstand you.  But, a person running FreeBSD 5.x,
 who wants to runs this vendor's 4.x software, will need to
 build their libc with WANT_COMPAT4_STDIO defined if this
 product needs to see __sF.

No; you're mixing things up. The compat4x stuff we have now allows
you to run 4.x binaries on 5.x. The problem that WANT_COMPAT4_STDIO
addresses is *compiling* 4.x compatible programs on 5.x! A world
of difference.

-- 
 Marcel Moolenaar USPA: A-39004  [EMAIL PROTECTED]

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: __sF

2002-11-02 Thread Steve Kargl
On Sat, Nov 02, 2002 at 08:42:57PM -0800, Marcel Moolenaar wrote:
 On Sat, Nov 02, 2002 at 03:58:14PM -0800, Steve Kargl wrote:
   
See the new WANT_COMPAT4_STDIO make.conf knob.
   
   This won't be acceptable as the vender will likely not be producing a
   separate 5.0 build (ie the same build needs to run on both.) until 4.x is
   EOLed.  Forcing people to rebuild libc seems a high barrier to entry.
   
  
  Maybe I misunderstand you.  But, a person running FreeBSD 5.x,
  who wants to runs this vendor's 4.x software, will need to
  build their libc with WANT_COMPAT4_STDIO defined if this
  product needs to see __sF.
 
 No; you're mixing things up. The compat4x stuff we have now allows
 you to run 4.x binaries on 5.x. The problem that WANT_COMPAT4_STDIO
 addresses is *compiling* 4.x compatible programs on 5.x! A world
 of difference.
 

I just looked through /usr/lib on the 4.7 live ISO.  We are
missing a bunch of libraries.  See another post with the list.

-- 
Steve

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message