diff --git a/ChangeLog.md b/ChangeLog.md index 6051e28c21e59..ab9cfcc20505c 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -21,6 +21,9 @@ See docs/process.md for more on how version tagging works. 3.1.52 (in development) ----------------------- - The `--default-obj-ext` command line flag was removed. (#20917) +- emcc will not treat files with the `.bc` extension as source files. These + will get compiled to object files before being passed to the linker. This + matches the behaviour of clang. 3.1.51 - 12/13/23 ----------------- diff --git a/emcc.py b/emcc.py index 3b7cac11ca0d0..1a4c823090dc5 100644 --- a/emcc.py +++ b/emcc.py @@ -65,7 +65,7 @@ SPECIAL_ENDINGLESS_FILENAMES = [os.devnull] C_ENDINGS += SPECIAL_ENDINGLESS_FILENAMES # consider the special endingless filenames like /dev/null to be C -SOURCE_ENDINGS = C_ENDINGS + CXX_ENDINGS + OBJC_ENDINGS + OBJCXX_ENDINGS + ['.ll', '.S'] +SOURCE_ENDINGS = C_ENDINGS + CXX_ENDINGS + OBJC_ENDINGS + OBJCXX_ENDINGS + ['.bc', '.ll', '.S'] ASSEMBLY_ENDINGS = ['.s'] HEADER_ENDINGS = ['.h', '.hxx', '.hpp', '.hh', '.H', '.HXX', '.HPP', '.HH'] diff --git a/test/test_other.py b/test/test_other.py index cd8c4e585e76d..cff77e314eed8 100644 --- a/test/test_other.py +++ b/test/test_other.py @@ -12622,18 +12622,9 @@ def test_no_main_with_PROXY_TO_PTHREAD(self): self.assertContained('crt1_proxy_main.o: undefined symbol: main', err) def test_archive_bad_extension(self): - # Regression test for https://github.com/emscripten-core/emscripten/issues/14012 - # where llvm_nm_multiple would be confused by archives names like object files. - create_file('main.c', ''' - #include - int main() { - return (int)(long)&accept; - } - ''') - - self.run_process([EMCC, '-c', 'main.c']) - self.run_process([EMAR, 'crs', 'libtest.bc', 'main.o']) - self.run_process([EMCC, 'libtest.bc', 'libtest.bc']) + self.run_process([EMCC, '-c', test_file('hello_world.c')]) + self.run_process([EMAR, 'crs', 'libtest.bc', 'hello_world.o']) + err = self.expect_fail([EMCC, 'libtest.bc']) def test_split_dwarf_implicit_compile(self): # Verify that the dwo file is generated in the current working directory, even when implicitly