Merge branch 'bug-fixes' into 'master'

Fix elf extension and compilation with GCC4.7

See merge request simulant/GLdc!100
This commit is contained in:
Luke Benstead 2023-03-07 21:40:54 +00:00
commit 0cf006ebce
6 changed files with 25 additions and 14 deletions

2
.gitignore vendored
View File

@ -9,3 +9,5 @@ dc-build.sh
build/*
builddir/*
version.[c|h]
pcbuild/*
dcbuild/*

View File

@ -24,7 +24,16 @@ if(NOT PLATFORM_DREAMCAST)
set(FIND_LIBRARY_USE_LIB32_PATHS true)
set(FIND_LIBRARY_USE_LIB64_PATHS false)
else()
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mfsrra -ffp-contract=fast -mfsca -ffast-math")
include(CheckCCompilerFlag)
check_c_compiler_flag("-mfsrra" COMPILER_HAS_FSRRA)
check_c_compiler_flag("-mfsca" COMPILER_HAS_FSCA)
if(COMPILER_HAS_FSRRA)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mfsrra")
endif()
if(COMPILER_HAS_FSCA)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mfsca")
endif()
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -ffp-contract=fast -ffast-math")
endif()
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3 -fexpensive-optimizations")

View File

@ -100,7 +100,7 @@ void do_frame() {
glKosSwapBuffers();
}
time_t start;
time_t begin;
void switch_tests(int ppf) {
printf("Beginning new test: %d polys per frame (%d per second at 60fps)\n",
ppf * 3, ppf * 3 * 60);
@ -113,8 +113,8 @@ void check_switch() {
now = time(NULL);
if(now >= (start + 5)) {
start = time(NULL);
if(now >= (begin + 5)) {
begin = time(NULL);
printf(" Average Frame Rate: ~%f fps (%d pps)\n", avgfps, (int)(polycnt * avgfps * 2));
switch(phase) {
@ -165,7 +165,7 @@ int main(int argc, char **argv) {
/* Start off with something obscene */
switch_tests(200000 / 60);
start = time(NULL);
begin = time(NULL);
for(;;) {
if(check_start())

View File

@ -112,7 +112,7 @@ void do_frame() {
glKosSwapBuffers();
}
time_t start;
time_t begin;
void switch_tests(int ppf) {
printf("Beginning new test: %d polys per frame (%d per second at 60fps)\n",
ppf * 2, ppf * 2 * 60);
@ -125,8 +125,8 @@ void check_switch() {
now = time(NULL);
if(now >= (start + 5)) {
start = time(NULL);
if(now >= (begin + 5)) {
begin = time(NULL);
printf(" Average Frame Rate: ~%f fps (%d pps)\n", avgfps, (int)(polycnt * avgfps * 2));
switch(phase) {
@ -184,7 +184,7 @@ int main(int argc, char **argv) {
/* Start off with something obscene */
switch_tests(200000 / 60);
start = time(NULL);
begin = time(NULL);
uint32_t iterations = 2000;

View File

@ -93,7 +93,7 @@ void do_frame() {
glKosSwapBuffers();
}
time_t start;
time_t begin;
void switch_tests(int ppf) {
printf("Beginning new test: %d polys per frame (%d per second at 60fps)\n",
ppf * 2, ppf * 2 * 60);
@ -106,8 +106,8 @@ void check_switch() {
now = time(NULL);
if(now >= (start + 5)) {
start = time(NULL);
if(now >= (begin + 5)) {
begin = time(NULL);
printf(" Average Frame Rate: ~%f fps (%d pps)\n", avgfps, (int)(polycnt * avgfps * 2));
switch(phase) {
@ -155,7 +155,7 @@ int main(int argc, char **argv) {
/* Start off with something obscene */
switch_tests(220000 / 60);
start = time(NULL);
begin = time(NULL);
for(;;) {
if(check_start())

View File

@ -49,7 +49,7 @@ ENDIF()
add_link_options(-L$ENV{KOS_BASE}/lib/dreamcast)
link_libraries(-Wl,--start-group -lstdc++ -lkallisti -lc -lgcc -Wl,--end-group m)
SET(CMAKE_EXECUTABLE_SUFFIX ".elf")
SET(CMAKE_EXECUTABLE_SUFFIX_C ".elf")
SET(CMAKE_EXECUTABLE_SUFFIX_CXX ".elf")
ADD_DEFINITIONS(