root@vanvleck.MATH.WISC.EDU (Admin) (09/11/87)
We (the programmers for the University of Wisconsin/Madison Math department) are trying to bring up Cayley on our AT&T 3B15. Cayley is a program that helps solve problems in group theory; it consists of about 2000 object files, all but a few in FORTRAN 77, the rest in C. We can compile each of the pieces but haven't been able to get ld to link them. ld can't handle an argument list that contains 2000 file names, so we've collected the object files into 16 or 17 libraries. Unfortunately, ld tells us that it can't read the .data section of one of our libraries, despite the fact that, as far as we can tell, it's OK. It seems to us that might be overflowing tables in ld; is this plausible? If so, what can we do? Someone who has brought Cayley up on other systems told us he got ld to work by modifing it to read its argument list from a file. Could we get a copy of such an ld? Are there any other pieces of information that might help to get ld to handle this big a job? University of Wisconsin - Math Dept
root@vanvleck.MATH.WISC.EDU (David Roy Askey ) (09/11/87)
We (the programmers for the University of Wisconsin/Madison Math department) are trying to bring up Cayley on our AT&T 3B15. Cayley is a program that helps solve problems in group theory; it consists of about 2000 object files, all but a few in FORTRAN 77, the rest in C. We can compile each of the pieces but haven't been able to get ld to link them. ld can't handle an argument list that contains 2000 file names, so we've collected the object files into 16 or 17 libraries. Unfortunately, ld tells us that it can't read the .data section of one of our libraries, despite the fact that, as far as we can tell, it's OK. It seems to us that might be overflowing tables in ld; is this plausible? If so, what can we do? Someone who has brought Cayley up on other systems told us he got ld to work by modifing it to read its argument list from a file. Could we get a copy of such an ld? Are there any other pieces of information that might help to get ld to handle this big a job?
wjc@ho7cad.UUCP (09/12/87)
In article <1@vanvleck.MATH.WISC.EDU> root@vanvleck.MATH.WISC.EDU (Admin) writes: > > ld can't handle an argument list that contains 2000 file names, so we've > ... > > It seems to us that might be overflowing tables in ld; is this plausible? > If so, what can we do? Someone who has brought Cayley up on other systems > told us he got ld to work by modifing it to read its argument list from a file. > Could we get a copy of such an ld? Are there any other pieces of information > that might help to get ld to handle this big a job? > > University of Wisconsin - Math Dept > I haven't monkeyed with this too much (and not at all on a 3b15 that you said you're on), but the version of "ld" that reads arguments from a file is probably called "ld" on your system (small joke). Really, though, the standard SVR2 "ld" can use something called an "ifile". The "ifiles" (anything not an archive or an object) contain "ld" directives. Among other things, generally anything that you could put on the "ld" command line qualifies as a directive. E.g., ld -x -y a.o b.o c.a is the same as ld eye.file where "eye.file" contains: -x -y a.o b.o c.a I don't know if this is going to solve your problem with overflowing tables, though. (That doesn't mean "I doubt it"; it just means I dunno.) Another possibility (somewhat more effort) is to do several loads hierarchically. The early ld's generate relocatable outputs which are part of the next load. The hope is that you resolve and submerge some of the symbols along the way. Bill Carpenter (AT&T gateways)!ho5cad!wjc HO 1L-410, (201)949-8392
ray@dsiramd.nz (Ray Brownrigg) (09/14/87)
In article <1@vanvleck.MATH.WISC.EDU> root@vanvleck.MATH.WISC.EDU (Admin) writes: > >collected the object files into 16 or 17 libraries. Unfortunately, ld tells >us that it can't read the .data section of one of our libraries, despite the >fact that, as far as we can tell, it's OK. > >It seems to us that might be overflowing tables in ld; is this plausible? It might be that the problem is a ulimit problem. When loading S on a 3B2 system, a similar problem occurs if the users ulimit has not been expanded beyond the default 1 megabyte. The unstripped S executive is about 2Mb. -- Ray Brownrigg UUCP: {utai!calgary,uunet}!vuwcomp!dsiramd!ray Applied Maths Div, DSIR ACSnet: ray@dsiramd.nz[@munnari] PO Box 1335 System: OLIVETTI/AT&T 3B2/400B+, System V R3.0 Wellington, New Zealand "UNX -rules -OK"
dca@toylnd.UUCP (09/14/87)
> We (the programmers for the University of Wisconsin/Madison Math department) are > trying to bring up Cayley on our AT&T 3B15. Cayley is a program that helps > solve problems in group theory; it consists of about 2000 object files, > all but a few in FORTRAN 77, the rest in C. We can compile each of the pieces > but haven't been able to get ld to link them. > > ld can't handle an argument list that contains 2000 file names, so we've > collected the object files into 16 or 17 libraries. Unfortunately, ld tells > us that it can't read the .data section of one of our libraries, despite the > fact that, as far as we can tell, it's OK. > I'm a little confused why you took this approach to a solution. If the loader you have supports pre-linking it is usually vastly preferable to using libraries to link together large subsystems. In libraries, you still have to do all the work as if you were relinking the entire module even when you change a single bit of code. If you use prelinks you only have to re-link the required pre-link and then relink the prelinks together which is usually less time consuming. Mind you I don't have a 3b15 (I have a 3b1) and I haven't tried prelinks using 'ld' but from my manual that if you just divide your object modules (hopefully in some semi-logical fashion) and link them into a prelink by using the -r option you should then be able to link the prelinks together to make a complete system. It's possible linking the resulting prelinks could also be less stressful on 'ld' in terms of memory since it is not having to worry about references internal to the prelinks, only externals. Just a thought. David Albrecht