Проблема возникает при создании тонкого архива из файла (file0.o) и из другого тонкого архива, который содержит файл с таким же именем файла (подпапка / file0.o). Я нахожу это поведение утилиты ar в списке странным.
Эту проблему можно воспроизвести, используя следующий список команд:
mkdir reproducing_ar_bug
cd reproducing_ar_bug
touch file0.o
mkdir subfolder
cd subfolder
touch file0.o
touch file1.o
ar rcST built-in.o file0.o file1.o
cd ..
ar rcST built-in.o subfolder/built-in.o file0.o
В этом случае окончательный встроенный файл .o не содержит подпапки / file0.o:
!<thin>
// 28 `
file0.o/
subfolder/file1.o/
...
Но если изменить окончательную команду ar с:
ar rcST built-in.o subfolder/built-in.o file0.o
на
ar rcST built-in.o file0.o subfolder/built-in.o
Результат верен:
!<thin>
// 48 `
file0.o/
subfolder/file0.o/
subfolder/file1.o/
PS Список командс правильным поведением:
mkdir reproducing_ar_bug
cd reproducing_ar_bug
touch file0.o
mkdir subfolder
cd subfolder
touch file0.o
touch file1.o
ar rcST built-in.o file0.o file1.o
cd ..
ar rcST built-in.o file0.o subfolder/built-in.o