Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
05640 Compiling Major Always Jul 25, 2014, 12:07 11 days ago
Tester gauel View Status Public Platform Other
Assigned To Resolution No change required OS Linux
Status [?] Closed Driver model1.cpp
Version 0.154 Fixed in Version 0.197GIT Build 64-bit
Summary 05640: Build failed: array subscript is above array bounds
Description TARGET = ume
gcc-4.9.1

$ make -j16
=======================
src/mame/video/model1.c: In function 'void draw_quads(model1_state*, bitmap_rgb32&, const rectangle&)':
src/mame/video/model1.c:307:17: error: array subscript is above array bounds [-Werror=array-bounds]
    while(p[ps2+1].y == cury)
                 ^
src/mame/video/model1.c:319:17: error: array subscript is below array bounds [-Werror=array-bounds]
    while(p[ps1-1].y == cury)
                 ^
src/mame/video/model1.c:319:17: error: array subscript is below array bounds [-Werror=array-bounds]
src/mame/video/model1.c:329:17: error: array subscript is above array bounds [-Werror=array-bounds]
    while(p[ps2+1].y == cury)
                 ^
src/mame/video/model1.c:329:17: error: array subscript is above array bounds [-Werror=array-bounds]
Compiling src/mame/video/segag80v.c...
src/mame/video/model1.c:305:17: error: array subscript is below array bounds [-Werror=array-bounds]
    while(p[ps1-1].y == cury)
                 ^
makefile:909: recipe for target 'obj/sdl64/mame/video/model1.o' failed
=======================
Steps To Reproduce
Additional Information
Flags
Regression Version
Affected Sets / Systems
Attached Files
 
Relationships
There are no relationsihp linked to this issue.
Notes
7
User avatar
No.10863
Tafoid
Administrator
Jul 25, 2014, 14:34
Normally, we do not accept any bugs for cutting edge gcc versions. I know 4.8.x has been well tested as it is part of many linux distros.
I"ll acknowledge for now. I guess. Don't expect help to correct until, I'm told, the next Fedora is released (months away)?
User avatar
No.10864
R. Belmont
Developer
Jul 25, 2014, 16:10
This is a double whammy as SDL UME builds are not supported, and GCC 4.9 will not be added to the supported compilers list until Fedora 21 is released (currently mid-November 2014).

You can hack around this specific issue fairly easily by editing src/build/flags_gcc.mak and changing it so the 4.8 changes apply to 4.8 or 4.9, but anything that goes wrong after that (including if the games don't actually run) is entirely self-service I'm afraid.
User avatar
No.10865
gauel
Tester
Jul 26, 2014, 01:31
> I know 4.8.x has been well tested as it is part of many linux distros.
Thanks for the info. I'm using Arch Linux now.

> SDL UME builds are not supported
Sorry for annoying you.
I always use UME and I thought model1.c was not a UME specific file.
The build error happens on "TARGET = mame" too.
User avatar
No.10867
R. Belmont
Developer
Jul 26, 2014, 17:47
4.9.0 and 4.9.1 have been reported (by Linus Torvalds himself!) to generate incorrect code for the Linux kernel. So it is strongly recommended you use 4.8.3 if it's available on your distro.
User avatar
No.10868
Haze
Senior Tester
Jul 26, 2014, 18:34
This is nothing to do with UME, RB is trolling. You'll get the same with a regular MAME build as you observe.
User avatar
No.10896
gauel
Tester
Aug 5, 2014, 04:06
1. We need to modify src/emu/cpu/m68000/m68k_in.c
https://aur.archlinux.org/packages/sdlume/
> It is easy to fix: convert the file src/emu/cpu/m68000/m68k_in.c to use Unix (LF only) line endings.

2. We need to add options on gcc-4.9.1/Arch Linux.
$ make NOWERROR=1 OPTIMIZE=2 PYTHON=python2

Now I can run UME on Arch Linux.
User avatar
No.14942
Robbbert
Developer
11 days ago
GCC 4 is no longer supported, therefore this report is no longer relevant.