|
Joined: Jul 2007
Posts: 4,625
Very Senior Member
|
OP
Very Senior Member
Joined: Jul 2007
Posts: 4,625 |
My second try with clean compile. C:\Emulator\Mess\SVN\Bin\mess>make TARGET=mess Compiling src/mame/drivers/megadriv.c... src/mame/drivers/megadriv.c: In function 'void driver_init__32x(running_machine* )': src/mame/drivers/megadriv.c:6577: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See < http://gcc.gnu.org/bugs.html> for instructions. make: *** [obj/windows/mess/mame/drivers/megadriv.o] Error 1 Can it be, something wrong with my GCC 4.4.3 20091223 version ?
|
|
|
|
Joined: Jul 2007
Posts: 4,625
Very Senior Member
|
OP
Very Senior Member
Joined: Jul 2007
Posts: 4,625 |
you might have stopped compilation during first run, ending up with a half-compiled megadriv.o
try deleting it from the obj/windows/mess/mame/drivers/ directory and restarting compilation
current svn compiles fine Thank you to try to help me. My obj/windows/mess/mame/drivers/ directory is and was empty.
|
|
|
|
Joined: Aug 2004
Posts: 1,458 Likes: 9
Very Senior Member
|
Very Senior Member
Joined: Aug 2004
Posts: 1,458 Likes: 9 |
I got the same error today on a clean compile, it has happened to very many people, however I'm told we all have faulty pcs.
One suggestion is to not use the -j option, but if that doesn't fix it, go to mess/drivers/genesis.c, mame/includes/megadriv.h, and mame/drivers/megadriv.c and change the reference of DRIVER_INIT(_32x) to x32x. That always works. No idea why though.
If you get a segfault while compiling tms57002, open the file it complains about (tms57002.c), look for the first occurence of "cycles > 0" (without the quotes) (it's a IF statement) and enclose it in ( ) - so it looks like (cycles > 0) .. this always works too, again no idea what difference it could make.
Last edited by robbbert; 06/06/10 01:16 PM.
|
|
|
|
Joined: Mar 2006
Posts: 1,079 Likes: 6
Very Senior Member
|
Very Senior Member
Joined: Mar 2006
Posts: 1,079 Likes: 6 |
Not faulty pcs, its just that the newer mame/mess build toolkit mingw64 version has some nasty extremely-hard-to-track compiler bugs which are especially prevalent in the 32 bit version but don't affect the 64 bit version much if at all. They also, for some reason, cause much more problems on winxp than on win7 or vista, and I have no idea why...
LN
"When life gives you zombies... *CHA-CHIK!* ...you make zombie-ade!"
|
|
|
|
Joined: Mar 2001
Posts: 17,215 Likes: 234
Very Senior Member
|
Very Senior Member
Joined: Mar 2001
Posts: 17,215 Likes: 234 |
More accurately, there's an intermittent compiler bug on XP (a 10 year old operating system) which doesn't occur on 32 or 64 bit versions of Vista or 7 (or at all on Linux/BSD/Mac). The same compiler bug also occurs on systems which are overclocked or have faulty RAM.
Anyway, Firewave was pissed because it wasn't happening for a while, so now he can go to work.
|
|
|
|
Joined: Jul 2007
Posts: 4,625
Very Senior Member
|
OP
Very Senior Member
Joined: Jul 2007
Posts: 4,625 |
I got the same error today on a clean compile, it has happened to very many people, however I'm told we all have faulty pcs.
One suggestion is to not use the -j option, but if that doesn't fix it, go to mess/drivers/genesis.c, mame/includes/megadriv.h, and mame/drivers/megadriv.c and change the reference of DRIVER_INIT(_32x) to x32x. That always works. No idea why though.
If you get a segfault while compiling tms57002, open the file it complains about (tms57002.c), look for the first occurence of "cycles > 0" (without the quotes) (it's a IF statement) and enclose it in ( ) - so it looks like (cycles > 0) .. this always works too, again no idea what difference it could make. I not use the -j option. mess/drivers/genesis.c /****************************************** SegaCD & 32X emulation ****************************************/
/* Very preliminary skeleton code from David Haywood, borrowed for MESS by Fabio Priuli */ /* These are only included to document BIOS informations currently available */
static DRIVER_INIT( mess_32x ) { DRIVER_INIT_CALL(_32x); DRIVER_INIT_CALL(mess_md_common); }
static MACHINE_DRIVER_START( ms_32x ) MDRV_IMPORT_FROM( genesis_32x )
MDRV_IMPORT_FROM( _32x_cartslot ) MACHINE_DRIVER_END to /****************************************** SegaCD & 32X emulation ****************************************/
/* Very preliminary skeleton code from David Haywood, borrowed for MESS by Fabio Priuli */ /* These are only included to document BIOS informations currently available */
static DRIVER_INIT( messx32x ) { DRIVER_INIT_CALL([_32x); DRIVER_INIT_CALL(mess_md_common); }
static MACHINE_DRIVER_START( ms_32x ) MDRV_IMPORT_FROM( genesis_32x )
MDRV_IMPORT_FROM( _32x_cartslot ) MACHINE_DRIVER_END mame/drivers/megadriv.c #define MASTER_CLOCK_NTSC 53693175 #define MASTER_CLOCK_PAL 53203424 #define SEGACD_CLOCK 12500000
extern DRIVER_INIT( megadriv_c2 ); extern DRIVER_INIT( megadrie ); extern DRIVER_INIT( megadriv ); extern DRIVER_INIT( megadrij ); extern DRIVER_INIT( _32x ); extern DRIVER_INIT( mpnew ); to #define MASTER_CLOCK_NTSC 53693175 #define MASTER_CLOCK_PAL 53203424 #define SEGACD_CLOCK 12500000
extern DRIVER_INIT( megadriv_c2 ); extern DRIVER_INIT( megadrie ); extern DRIVER_INIT( megadriv ); extern DRIVER_INIT( megadrij ); extern DRIVER_INIT( x32x ); extern DRIVER_INIT( mpnew ); mame/drivers/megadriv.c DRIVER_INIT( _32x ) { _32x_dram0 = auto_alloc_array(machine, UINT16, 0x40000/2); _32x_dram1 = auto_alloc_array(machine, UINT16, 0x40000/2);
memset(_32x_dram0, 0x00, 0x40000); memset(_32x_dram1, 0x00, 0x40000);
_32x_palette_lookup = auto_alloc_array(machine, UINT16, 0x200/2); _32x_palette = auto_alloc_array(machine, UINT16, 0x200/2);
memset(_32x_palette_lookup, 0x00, 0x200); memset(_32x_palette, 0x00, 0x200); to DRIVER_INIT( x32x ) { _32x_dram0 = auto_alloc_array(machine, UINT16, 0x40000/2); _32x_dram1 = auto_alloc_array(machine, UINT16, 0x40000/2);
memset(_32x_dram0, 0x00, 0x40000); memset(_32x_dram1, 0x00, 0x40000);
_32x_palette_lookup = auto_alloc_array(machine, UINT16, 0x200/2); _32x_palette = auto_alloc_array(machine, UINT16, 0x200/2);
memset(_32x_palette_lookup, 0x00, 0x200); memset(_32x_palette, 0x00, 0x200); Is this right or I forget something ?
|
|
|
|
Joined: Mar 2001
Posts: 17,215 Likes: 234
Very Senior Member
|
Very Senior Member
Joined: Mar 2001
Posts: 17,215 Likes: 234 |
The compiler can tell you faster and easier than us - if it generates a new error, you forgot something Also, if you don't normally use -j, adding it can sometimes bypass the initial error.
|
|
|
|
Joined: Jan 2006
Posts: 3,691
Very Senior Member
|
Very Senior Member
Joined: Jan 2006
Posts: 3,691 |
that is just a workaround which might work or not on your computer, not a real fix. e.g. the unmodified code compiles perfectly on my winxp computer. this is a subtle compiler problem which we hope to solve sooner or later.
notice that someone else used a different workaround consisting of changing the order of some constant (without need of renaming any 32x item).
Kale reported that compiling with lower case
make target=mess
fixed as well the issue in his computer, but I never got the error, so I don't know if it would work for everyone.
|
|
|
|
Joined: Jul 2007
Posts: 4,625
Very Senior Member
|
OP
Very Senior Member
Joined: Jul 2007
Posts: 4,625 |
The compiler can tell you faster and easier than us - if it generates a new error, you forgot something Also, if you don't normally use -j, adding it can sometimes bypass the initial error. -j is not helpful for me. What I forget ?
|
|
|
|
Joined: Jul 2007
Posts: 4,625
Very Senior Member
|
OP
Very Senior Member
Joined: Jul 2007
Posts: 4,625 |
that is just a workaround which might work or not on your computer, not a real fix. e.g. the unmodified code compiles perfectly on my winxp computer. this is a subtle compiler problem which we hope to solve sooner or later.
notice that someone else used a different workaround consisting of changing the order of some constant (without need of renaming any 32x item).
Kale reported that compiling with lower case
make target=mess
fixed as well the issue in his computer, but I never got the error, so I don't know if it would work for everyone. How strange is this ? It seems (still in progress...) to work now ! Thanks guys (robbbert, etabeta78, Arbee) for your great help.
Last edited by Anna Wu; 06/06/10 02:01 PM.
|
|
|
0 members (),
305
guests, and
1
robot. |
Key:
Admin,
Global Mod,
Mod
|
|
Forums9
Topics9,320
Posts121,923
Members5,074
|
Most Online1,283 Dec 21st, 2022
|
|
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!
|
|
|
|