[mercury-users] Re: Welcome to mercury-users

Vic Bancroft bancroft at zvolve.net
Wed Oct 10 01:28:28 AEST 2001


On Mon, Oct 08, 2001 at 10:53:18AM +1000, Fergus Henderson wrote:
> On 03-Oct-2001, Vic Bancroft <bancroft at zvolve.net> wrote:
> > While attempting to build mercury under a recent vintage AIX 4.3.3, I
> > made the following changes to scripts/rs6000_hack :
> 
> Did you follow the earlier steps listed in README.AIX first?

Yes, I went through the install process several ways.  From a compile
perspective, I had the most luck by just adding the two lines to
Mmake.params, "EXTRA_CFLAGS=-mminimal-toc" and "RM_C=:" then doing
configure and make.  I will attach the configure and make logs in a
seperate email (as not to spam the list).  The last bit of the
make_install.log are as follows :

   gmake[1]: Entering directory `/usr/local/src/mercury-compiler-0.10.1/library'
   MERCURY_INT_DIR=. MERCURY_ALL_C_INCL_DIRS=" -I../trace -I../runtime -I../boehm_gc -I../boehm_gc/include " mmc --generate-dependencies --transitive-intermodule-optimization --grade asm_fast     --no-infer-all --halt-at-warn    library
   ../scripts/mmc[40]: 27348 Illegal instruction(coredump)
   gmake[1]: *** [library.depend] Illegal instruction (core dumped)
   gmake[1]: Leaving directory `/usr/local/src/mercury-compiler-0.10.1/library'
   Cleaning up from apparent failed install in `./boehm_gc'...
   Done.
   Cleaning up from apparent failed install in `./browser'...
   Done.
   Cleaning up from apparent failed install in `./library'...
   Done.
   Cleaning up from apparent failed install in `./runtime'...
   Done.
   Cleaning up from apparent failed install in `./trace'...
   Done.
   gmake: *** [install_grades] Error 1
   
> In particular, did you go through the normal install process
> and get an error message from the assembler?
> (i.e. did you confirm that the fixed limits that were present in
> earlier versions of AIX are still a problem?)

The table of contents size is still relatively small compared to the
Solaris platform (where I do have mercury running).  Without the extra
c flags of  -mminimal-toc in Mmake.param, the compiler fails with,

  ld: 0711-781 ERROR: TOC overflow. TOC size: 507292 Maximum size: 65536
  collect2: ld returned 12 exit status
  make[2]: *** [mercury_compile] Error 1
  make[2]: Leaving directory `/usr/local/src/mercury-compiler-0.10.1/compiler'

> > What else might I need to add to rs6000_hack ???
> 
> rs6000_hack was, as the name suggests, always a bit of a hack.

Yea, I tried it in an attempt for a quick fix.

> Although it would no doubt be possible to get it working again,
> there's now another approach possible which is likely to cause less
> maintenance difficulty in the future: use the `hlc.gc' grade.

Okay, I am willing to experiment a bit.  We have migrated some of our
c/c++ Makefiles, when in AIX, to use the compiler from IBM, though gcc
still gets a lot of use.

> This grade results in C code which is a lot more similar to the kind of
> C code that C programmers write, which is hence much less likely to
> exceed fixed limits in the C compiler and/or OS.
> I think this would be a better approach.

Sounds feasible to one who is just learning the mercury system.

> To get that to work, you'd need to generate hlc.gc versions of the C
> files for the Mercury compiler sources, e.g. by cross-compiling
> them on a different system. 

I do have mercury compiling executable files under Solaris and could
set up a second instance of the source tree for cross compiles.  

  [bancroft at exper:/usr/local/src/mercury-compiler-0.10.1/samples]$ ./hello
  Hello, world

Having just started reading in compiler/notes, you may need to let me
know what switches to flip.  Does this hlc.gc replace the LLDS or MDLS
c code generators ?

> That might take a bit of fiddling about to get it all to work, so it
> would probably be easiest if we just ship a version of our source
> distribution that includes the hlc.gc versions of the generated C
> files.  I'll be happy to set things up to do that sometime later
> this week.

At your convenience, I am herding my last iteration of code through
build and testing, so my schedule is flexible.

> (This hlc.gc version of the source distribution might also be
> helpful for those porting to MacOS or other systems.)

Heheh, mebbe I can put in a request for a nifty iBook !  It would be a
lot easier to carry around than this clunky Ultra10.

more,
l8r,

-- 
------------------------------------------------------------------- 
Victor Bancroft, Principal Engineer, Zvolve Systems [v]770.551.4505 
1050 Crown Pointe Pkwy, Suite 300, Atlanta GA 30338 [f]770.551.4509 
Fellow, Artificial Intelligence Center              [v]706.542-0358 
Athens, Georgia  30602, U.S.A           http://ai.uga.edu/~bancroft 
--------------------------------------------------------------------------
mercury-users mailing list
post:  mercury-users at cs.mu.oz.au
administrative address: owner-mercury-users at cs.mu.oz.au
unsubscribe: Address: mercury-users-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-users-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the users mailing list