Важен ли порядок объектных файлов при создании тонкого архива с помощью утилиты ar binutil - PullRequest
0 голосов
/ 11 октября 2019

Проблема возникает при создании тонкого архива из файла (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
...