[MITgcm-devel] make depend on sun (o:

Martin Losch mlosch at awi-bremerhaven.de
Fri Feb 25 14:35:40 EST 2005


Hi Ed,

I put this
FC_NAMEMANGLE="#define FC_NAMEMANGLE(X) X ## _"
into sunos_sun4_g77 and it works (it's the same as in the 
sunos_sun4u_f77). I am surprised that it hasn't been a problem so far 
(sunos_sun4u_g77 is the default build_options file, as far as I can 
see. It's all very mysterious to me. But I'll happily go along with 
this:

- adjust sunos_sun4_g77 (include the FC_NAMEMANGLE line)
- use the cyrus makedepend by default on SunOS (how does this happen, 
is that the default anyway? otherwise I have to change at least 3 
files: sunos_sun4u_g77 sunos_sun4u_f77 sunos_sun4u_mpf77+mpi_sunfire. 
There are also two files sunos and sunos+mpi, which are almost the same 
and both obsolete, I think. Maybe we should remove them?)
- maybe fix xmakedepend, so that it works with Sun (use hard coded 
/lib/cpp), but will that work with other systems? here are the files 
that still contain xmakedepend:
> csysm3::build_options> grep xmakedepend *
> darwin_absoft_f77:#MAKEDEPEND='${TOOLSDIR}/xmakedepend'
> darwin_ppc_g77:#EH3 MAKEDEPEND='${TOOLSDIR}/xmakedepend'
> darwin_ppc_xlf:MAKEDEPEND='${TOOLSDIR}/xmakedepend'
> darwin_ppc_xlf_panther:MAKEDEPEND='${TOOLSDIR}/xmakedepend'
> sunos_sun4u_f77:MAKEDEPEND='$(TOOLSDIR)/xmakedepend'
> sunos_sun4u_g77:MAKEDEPEND='$(TOOLSDIR)/xmakedepend'
> sunos_sun4u_g77~:MAKEDEPEND='$(TOOLSDIR)/xmakedepend'
> sunos_sun4u_mpf77+mpi_sunfire:MAKEDEPEND='$(TOOLSDIR)/xmakedepend'
So it's only sun and apple with xlf (why is that necessary, when we 
don't need it for darwin_ppc_g77?). If that darwin+xlf thing is sorted 
out, xmakedepend is no longer necessary, except for a fallback.

Martin
PS. I am at home now, so I'll respond only slowly (or not at all before 
monday).

On Feb 25, 2005, at 6:07 PM, Ed Hill wrote:

> On Fri, 2005-02-25 at 17:54 +0100, Martin Losch wrote:
>> I like your idea, I have wasted so much time with xmakedepend now.
>
> Good.  I'd like to see xmakedepend go away but its better to keep it as
> a last-resort.  And a good near-term goal is to make it unnecessary on
> as many machines as possible.
>
>
>> I could compile cyrus-imapd-makedepend on solaris 9, which is what we
>> are using, on both machines that are really relevant (the ones that 
>> are
>> being tested every week).
>>
>> this makedepend is incredibly fast, but does it do the right thing?
>
> Yes, its vary fast because its written in C, not shell scripts.  And it
> is most likely doing the right things since we do rely on it for a
> number of different machines.
>
>
>> after using i get a compile error at the link step:
>>
>>> Undefined                       first referenced
>>>  symbol                             in file
>>> timenow_                            timers.o
>>> ld: fatal: Symbol referencing errors. No output written to mitgcmuv
>>> collect2: ld returned 1 exit status
>>> *** Error code 1
>>> make: Fatal error: Command failed for target `mitgcmuv'
>>
>> this has to do with some c-routines (timenow_), will I have to change
>> the FC_MANGLE stuff?
>
> Yes, this is the Fortran-calling-C thing once again and it probably has
> nothing to do with "make depend".  Could you please send me the output
> from these two commands:
>
>   nm timers.o
>   nm tim.o
>
> and I'll tell you want to put in your optfile for the FC_NAMEMANGLE
> macro for that particular setup.
>
> Ed
>
>
> -- 
> Edward H. Hill III, PhD
> office:  MIT Dept. of EAPS;  Rm 54-1424;  77 Massachusetts Ave.
>              Cambridge, MA 02139-4307
> emails:  eh3 at mit.edu                ed at eh3.com
> URLs:    http://web.mit.edu/eh3/    http://eh3.com/
> phone:   617-253-0098
> fax:     617-253-4464
>
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://dev.mitgcm.org/mailman/listinfo/mitgcm-devel




More information about the MITgcm-devel mailing list