Skip to content

Commit

Permalink
Remove zeroes binary from test_archive_non_objects
Browse files Browse the repository at this point in the history
This test was added in emscripten-core#10300 to check if we can handle non-objects in
archives, especially rust metadata files that start with two leading
zeroes. LLVM's file magic identifier thinks files with two leading
zeroes are COFF files. But Rust metadata files used to start with two
leading zeroes too, resulting in an error in LLVM tools. So emscripten-core#10300
bypassed use of `llvm-nm` to avoid that.

We were still using `llvm-ranlib`, which also ran the LLVM magic
identifier when trying to create a symbol table for an object, but
`llvm-ranlib` so far has ignored those errors. But recently
llvm/llvm-project@a20168d
made them explicit errors, so we couldn't run `llvm-ranlib` anymore with
archives containing objects that start with two leading zeroes.

But this is not relevant anymore because Rust fixed their object file
format in rust-lang/rust#66235, so their files are not mistaken by LLVM
for COFF files anymore. So this PR fixes this test to not include a
binary with two leading zeros, while still testing archival of
non-object files.
  • Loading branch information
aheejin committed Oct 2, 2020
1 parent b22065b commit c6f619d
Showing 1 changed file with 1 addition and 4 deletions.
5 changes: 1 addition & 4 deletions tests/test_other.py
Original file line number Diff line number Diff line change
Expand Up @@ -7154,14 +7154,11 @@ def test_archive_no_index(self):

def test_archive_non_objects(self):
create_test_file('file.txt', 'test file')
# llvm-nm has issues with files that start with two or more null bytes since it thinks they
# are COFF files. Ensure that we correctly ignore such files when we process them.
create_test_file('zeros.bin', '\0\0\0\0')
self.run_process([EMCC, '-c', path_from_root('tests', 'hello_world.c')])
# No index added.
# --format=darwin (the default on OSX has a strange issue where it add extra
# newlines to files: https://bugs.llvm.org/show_bug.cgi?id=42562
self.run_process([EMAR, 'crS', '--format=gnu', 'libfoo.a', 'file.txt', 'zeros.bin', 'hello_world.o'])
self.run_process([EMAR, 'crS', '--format=gnu', 'libfoo.a', 'file.txt', 'hello_world.o'])
self.run_process([EMCC, path_from_root('tests', 'hello_world.c'), 'libfoo.a'])

def test_flag_aliases(self):
Expand Down

0 comments on commit c6f619d

Please sign in to comment.