[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

20021118: LDM Upgrade on FreeBSD (cont.)



>From: "Benjamin J. Cotton" <address@hidden>
>Organization: Purdue
>Keywords: 200210311528.g9VFSLX21227 LDM 5.2.1 5.2.2

Ben,

>Well, after a fun week of exams and papers, I was able to try upgrading to
>LDM v5.2.1 over the weekend.  Unfortunately, things are still not as they
>should be.  I've followed all of the instructions sent to me by Tom Yoksas
>to no avail.  Attached you will find the output of all of my relevant
>commands, as well as a command prompt history.

The output from the 'make' step told us what is going on.

>I started with a clean
>slate, removing everything related to version 5.2.1 except the original
>file I ftp'ed off of your site.  Then I went through the installation
>process.  The libldm.a file that Tom asked about in
>/net/anvil/project/ldm/ldm-5.2.1./src does not exist.

OK, and the failure to create/update libldm.a is _the_ problem.

>I did a 'make
>distclean' just for good measure after I made the source code
>modifications, even though I was starting from scratch.

OK.

The problem is that your 'make' is not using the default make rules for
that it should.  The sequence from 'make' that you sent us:

  (anvil.eas.purdue.edu) [/project/ldm/ldm-5.2.1/src]% make

  Making `all' in directory /net/anvil/project/ldm/ldm-5.2.1/src/config

  Returning to directory /net/anvil/project/ldm/ldm-5.2.1/src

  Making `all' in directory /net/anvil/project/ldm/ldm-5.2.1/src/ulog

  cc -g -DHAVE_CONFIG_H -I../config -c  ulog.c
  cc -g -DHAVE_CONFIG_H -I../config  hupsyslog.c   -o hupsyslog

  Returning to directory /net/anvil/project/ldm/ldm-5.2.1/src

  ...

is missing a step.  On systems that have standard development environments,
there would be an invocation of 'ar' between the compilation
line for ulog.c and the build line of 'hupsyslog'.  Here is an example
from a Sun Solaris SPARC machine here at the UPC:

%make
 ...

/opt/SUNWspro/bin/cc -O -DNDEBUG -DHAVE_CONFIG_H -I../config -c -o ulog.o ulog.c
ar -rv ../libldm.a ulog.o
a - ulog.o
ar: creating ../libldm.a
ar: writing ../libldm.a
rm -f ulog.o
/opt/SUNWspro/bin/cc -O -DNDEBUG -DHAVE_CONFIG_H -I../config -s hupsyslog.c  
-R/usr/ucblib -L/usr/ucblib -lrpcsoc -lnsl -lsocket -o hupsyslog
`all' is updated.

 ...


The FreeBSD man page for 'make' indicates that it should use default
rules from the "system make file":

%man make

 ...

FILES
     .depend                     list of dependencies
     Makefile                    list of dependencies
     makefile                    list of dependencies
     obj                         object directory
     sys.mk                      system makefile (processed before any other
                                 file, including makefile and Makefile)

 ...


I don't know why FreeBSD is _not_ using its own default make rules, but
I found out that if you use 'gmake' instead of 'make' things work:

cd ~ldm/ldm-5.2.1/src
gmake distclean
./configure
gmake
gmake install
sudo gmake install_setuids

I just ran this on our FreeBSD 4.5 system and on Jim Koermer's FreeBSD 4.7
system, and both builds completed without error.

Since you will be trying the build from source once again, I recommend
you use our 5.2.2 LDM distribution instead of 5.2.1.  This version has
a fix for a memory leak in the real time statistics reporting utility,
rtstats, that exists in 5.2.1.  It does not, unfortunately, have the
changes for FreeBSD, so you would have to include the ulog.c and fsStats.c
mods that you have done for 5.2.1.

Tom

>From address@hidden Wed Nov 20 06:20:47 2002
>Date: Wed, 20 Nov 2002 08:20:44 -0500
>From: A Braunsdorf <address@hidden>

In message <008201c2902d$5761caf0$e2f8d380@hal2>, "Benjamin Cotton" writes:
>  
> 'gmake' is not to be found on anvil.eas.purdue.edu.

I'll take a look, but it should be.  It's just called "make".  The
local make on all our machines is GNU make- I don't use anything
else unless I have to.

I used to install gcc as cc everywhere, but more people need the
vendor's one.

Make sure your path goes through /custom/bin, which the default
one should.  Anvil isn't up to current spec, so you might not be
quite right if you're using csh.

> Hopefully, we can come up with a solution to this.  Tom, once we get
> this working, I'd like to make a page on the LDM website devoted to the
> fun and joy of LDM on FreeBSD.  Do you mind if I excerpt your e-mails on
> this site.  I know Jim Koermer and I are the only ones running LDM on
> FreeBSD at the current time, but if someone else joins the IDD or when
> Jim or I move on to something else, there will be a handy reference for
> everyone.  

If it works on old SunOS or some other BSD, it should go right over
to another BSD.  I've only had trouble with things that are extremely
non-POSIX or really SysVish.

The old AIX version we were running mostly used the BSD side of
AIX, but AIX is such a mutt it's hard to tell much from that. :-)

ab

>From address@hidden Wed Nov 20 06:25:14 2002
>Date: Wed, 20 Nov 2002 08:25:12 -0500
>From: A Braunsdorf <address@hidden>

In message <address@hidden>, Unidata Support writes
:
> 
> I am afraid that simply having gmake on a system is not enough since
> it will need to have supporting infrastructure.

If he uses the installed one, it should all be there.  We've got
all the GNU development tools from binutils up to bison installed
and they're pretty fresh versions.

> The big problem it turns out is that 'make' on FreeBSD is not working
> according to the way the man pages suggest it should.

BSD make is a pain in the butt.  I only use it to compile the BSD
sources themselves.  Those guys need to drop it and get with GNU
make like everyone else does. :-(

I wouldn't bother to make your stuff work with BSD make.  If "make"
or "gmake" isn't GNU make, tell the user to install it.  It compiles
right up, and other things need it anyway.

> >Do you mind if I excerpt your e-mails on this site.

You can have mine too.  Especially the part about BSD make being
blecherous. :-)

ab

>From address@hidden Wed Nov 20 06:50:47 2002

Allen,

I looked in /usr/bin on anvil and I only found make. This is to be
expected if I understand you correctly, since make is really gmake.
Okay.  If that's the case, though, I don't understand why it hasn't been
working for me.  If it's gmake, it shouldn't be giving me these issues.


Ben

=========================
Benjamin J. Cotton
LDM/Forecast Game Administrator
Department of Earth and Atmos. Sci.
Purdue University

165 Cary Quadrangle                 campus: (765) 495-2298
West Lafayette, IN  47906         cell: (502) 551-5403
www.eas.purdue.edu/~bcotton   www.eas.purdue.edu/ldm
www.eas.purdue.edu/forecast     www.eas.purdue.edu/wxp

>From address@hidden Wed Nov 20 06:52:34 2002
>Date: Wed, 20 Nov 2002 08:52:31 -0500
>From: A Braunsdorf <address@hidden>

In message <009601c2909b$bbce8640$e2f8d380@hal2>, "Benjamin Cotton" writes:
> 
> I looked in /usr/bin on anvil and I only found make. This is to be
> expected if I understand you correctly, since make is really gmake.
> Okay.  If that's the case, though, I don't understand why it hasn't been
> working for me.  If it's gmake, it shouldn't be giving me these issues.

No, the one in /usr/local/bin (or /custom/bin in the new setup) is
gmake.

The one in /usr/bin is BSD make.  The system needs it, but I don't
recommend anyone use it.

ab

>From address@hidden Wed Nov 20 06:55:11 2002
>Date: Wed, 20 Nov 2002 08:55:09 -0500
>From: A Braunsdorf <address@hidden>

In message <009601c2909b$bbce8640$e2f8d380@hal2>, "Benjamin Cotton" writes:
> 
> I looked in /usr/bin on anvil and I only found make. This is to be
> expected if I understand you correctly, since make is really gmake.
> Okay.  If that's the case, though, I don't understand why it hasn't been
> working for me.  If it's gmake, it shouldn't be giving me these issues.

I just updated the default csh setup files on there (the ldm account
is in csh).  See if it works better now.  You probably want to log
out and back in to make sure.

ab

>From address@hidden Wed Nov 20 08:54:09 2002

I think the problem may have been solved..When I typed 'make' I had the
issues that we've already seen.  So I tried using 'gmake'.  It wasn't
found.  Allen updated the path, but to no avail.  So I tried this..
 
% /custom/bin/make
% /custom/bin/make install
 
Everything seems to have worked.  Nothing in the form of an error
message took any efforts to make itself known.  I think we may have it.
 
 
Thanks,
Ben
 
=========================
Benjamin J. Cotton
LDM/Forecast Game Administrator
Department of Earth and Atmos. Sci.
Purdue University
 
165 Cary Quadrangle                 campus: (765) 495-2298
West Lafayette, IN  47906         cell: (502) 551-5403
www.eas.purdue.edu/~bcotton   www.eas.purdue.edu/ldm
www.eas.purdue.edu/forecast     www.eas.purdue.edu/wxp