|
Cannot build MAME with symbols
#341697 - 06/21/15 01:38 AM
|
|
|
When I try (DEBUG=1 SYMBOLS=1) it makes it to the link stage, whether I'm builing 32 or 64 bit, then dies.
The linker (which at that point has allocated > 4G of memory!) eventually runs out of memory and bails.
Windows is 15M lines of code and I used to build that, so I'm pretty sure MAME can build with symbols... but is there a trick I'm missing?
Like I said, everything works perfectly up to the final link, so my environment must be close to right...
|
|
|
|
Re: Cannot build MAME with symbols
[Re: davepl]
#341698 - 06/21/15 01:52 AM
|
|
|
I'm wondering if perhaps symlevel, which defaults to 2, could be a problem. I really only need call stacks to survive. Globals would be nice, locals nice too, but just function names would be a start!
|
|
|
Tafoid |
I keep on testing.. testing.. testing... into the future!
|
|
|
Reged: 04/19/06
|
Posts: 3137
|
Loc: USA
|
|
Send PM
|
|
|
Re: Cannot build MAME with symbols
[Re: davepl]
#341700 - 06/21/15 01:59 AM
|
|
|
> When I try (DEBUG=1 SYMBOLS=1) it makes it to the link stage, whether I'm builing 32 > or 64 bit, then dies. > > The linker (which at that point has allocated > 4G of memory!) eventually runs out of > memory and bails. > > Windows is 15M lines of code and I used to build that, so I'm pretty sure MAME can > build with symbols... but is there a trick I'm missing? > > Like I said, everything works perfectly up to the final link, so my environment must > be close to right...
It is being worked on and has been a problem since the new build system we adopted. For now, I'd suggest the following:
OPTIMIZE=3 SYMBOLS=1 SYMLEVEL=1 DEBUG=1
The OPTIMIZE=3 will compact the binary and allow it to perform better as well as SYMLEVEL=1 (normally it is 2) will provided driver/line specific symbols in GDB backtraces, if needed, as well as productive stack crawls.
That is all I can suggest for now other than attempting smaller builds targeting specific drivers which such coding is being done right now in current GIT to allow the enduser to do.
EDIT: Followup.. It looks like the SUBTARGET could be used to make full symbols still as the files are large but don't hit that 32-bit limit, granted these compiles are for 64-bit but 32-bit shouldn't be any larger.
Current GIT for SUBTARGETS make the following:
SUBTARGET=mess 06/20/2015 09:33 PM 1,321,843,606 mess64d.exe 06/20/2015 09:33 PM 25,369,083 mess64d.sym
SUBTARGET=arcade 06/20/2015 09:57 PM 1,796,665,761 mamearcade64d.exe 06/20/2015 09:57 PM 30,481,675 mamearcade64d.sym
|
|
|
|