~ chicken-core (master) 7cf4c1ba5b051aa8ae68a54dc917935cc0ef6f85


commit 7cf4c1ba5b051aa8ae68a54dc917935cc0ef6f85
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Fri Aug 28 15:54:49 2026 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Fri Aug 28 15:54:49 2026 +0200

    default to .o object extension everywhere

diff --git a/csc.scm b/csc.scm
index e538ace1..faca1816 100644
--- a/csc.scm
+++ b/csc.scm
@@ -101,7 +101,7 @@
 (define rc-compiler (if host-mode INSTALL_RC_COMPILER TARGET_RC_COMPILER))
 (define linker (if host-mode host-cc default-cc))
 (define c++-linker (if host-mode host-cxx default-cxx))
-(define object-extension (if mingw "obj" "o"))
+(define object-extension "o")
 (define library-extension "a")
 (define link-output-flag "-o")
 (define executable-extension "")
@@ -306,8 +306,15 @@
 	(static-o (make-pathname #f name static-object-extension)))
     (or (file-exists? a)
 	(file-exists? o)
+        (cond-expand
+          (windows (file-exists? (make-pathname #f name "obj")))
+          (else #f))
 	(file-exists? static-a)
 	(file-exists? static-o)
+        (cond-expand
+          (windows 
+            (file-exists? (make-pathname #f name "static.obj")))
+          (else #f))
 	(and (not ignore-repository)
 	     (or (chicken.load#find-file a (repo-path))
 		 (chicken.load#find-file o (repo-path)))))))
diff --git a/egg-compile.scm b/egg-compile.scm
index ed41096b..48706bce 100644
--- a/egg-compile.scm
+++ b/egg-compile.scm
@@ -42,10 +42,6 @@
 
 (define +unix-executable-extension+ "")
 (define +windows-executable-extension+ ".exe")
-(define +unix-object-extension+ ".o")
-(define +unix-archive-extension+ ".a")
-(define +windows-object-extension+ ".obj")
-(define +windows-archive-extension+ ".a")
 (define +link-file-extension+ ".link")
 
 (define keep-generated-files #f)
@@ -61,15 +57,8 @@
           (string-append prefix dir)
           default))))
 
-(define (object-extension platform)
-  (case platform
-    ((unix) +unix-object-extension+)
-    ((windows) +windows-object-extension+)))
-
-(define (archive-extension platform)
-  (case platform
-    ((unix) +unix-archive-extension+)
-    ((windows) +windows-archive-extension+)))
+(define (object-extension platform) ".o")
+(define (archive-extension platform) ".a")
 
 (define (executable-extension platform)
   (case platform
diff --git a/manual/Getting started b/manual/Getting started
index 96fdabb9..aee13590 100644
--- a/manual/Getting started	
+++ b/manual/Getting started	
@@ -514,8 +514,8 @@ name), and that it returns an integer result (the {{int}} before.) Now we can in
 
 If using MinGW on Windows,
 
- > gcc -c fib.c -o fib.obj
- > csc -o fib-user fib.obj fib-user.scm
+ > gcc -c fib.c -o fib.o
+ > csc -o fib-user fib.o fib-user.scm
 
 Then run the executable.
  $ ./fib-user
diff --git a/tests/csc-tests.scm b/tests/csc-tests.scm
index 932e48a1..76f57407 100644
--- a/tests/csc-tests.scm
+++ b/tests/csc-tests.scm
@@ -21,7 +21,7 @@
 (csc "null.scm" "-t")
 (assert (file-exists? "null.c"))
 
-(define obj-file (if (eq? (software-version) 'mingw) "null.obj" "null.o"))
+(define obj-file "null.o")
 
 (csc "null.c" "-c")
 (assert (file-exists? obj-file))
diff --git a/tests/runtests.sh b/tests/runtests.sh
index 97210387..2edfaa57 100755
--- a/tests/runtests.sh
+++ b/tests/runtests.sh
@@ -60,7 +60,7 @@ $time true >/dev/null 2>/dev/null
 test $? -eq 127 && time=
 set -e
 
-rm -fr *.exe *.so *.o *.obj *.out *.import.* ../foo.import.* test-repository
+rm -fr *.exe *.so *.o *.out *.import.* ../foo.import.* test-repository
 mkdir -p test-repository
 cp $TYPESDB test-repository/types.db
 
Trap