Passing a -mcpu=xxx option after a regular argument (a filename), when an equivalent -mcpu=xxx option was specified earlier, causes gnatmake to fail:
$ gnatmake -mcpu=7400 hello -o hello.exe -bargs -mcpu=7400 rtems_init.o Exception name: SYSTEM.ASSERTIONS.ASSERT_FAILURE Message: make.adb:7473 gnatmake: INTERNAL ERROR. Please report. $ powerpc-rtems4.11-gnatmake -mcpu=7400 hello -o hello.exe -bargs -mcpu=7400 rtems_init.o Exception name: SYSTEM.ASSERTIONS.ASSERT_FAILURE Message: make.adb:7473 gnatmake: INTERNAL ERROR. Please report. Removing either -mcpu=7400 option allows for compilation, and the resulting executable works. I found this bug when compiling an RTEMS sample program which for some reason specified many arguments twice (-bargs, -D__ppc_generic, etc.). However, I believe that issue was related to my environment at the time, since I haven't been able to recreate it. -- Summary: GNATMake fails with multiple, equal -mcpu options Product: gcc Version: 4.5.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: ada AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: michael dot gurlitz at gmail dot com GCC build triplet: i386-pc-solaris2.10 GCC host triplet: i386-pc-solaris2.10 GCC target triplet: i386-pc-solaris2.10, powerpc-rtems4.11 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45298