GnuCOBOL не генерирует ссылки ELF библиотеки динамических ссылок

Теперь GnuCOBOL, пакет Ubuntu - open-cobol.

Начиная с Ubuntu 14.04? компилятору не удается связать ссылки на динамические библиотеки для использования dlopen во время выполнения. Нет следов библиотеки в ldd от gcc -l библиотека ссылок намеки.

Это работало в течение длительного времени, и, кажется, что-то изменилось в ld вызов или предположения?

Технические подробности на https://stackoverflow.com/questions/26227458/gnucobol-failing-to-find-dynamic-symbols-only-on-recent-ubuntu

Те же самые источники cobc, построенные на Fedora, генерируют двоичные файлы, где ldd имеет записи библиотеки динамических ссылок. Функция CALL работает с 2006 года.

Если кто-нибудь знает о недавнем изменении на dlopen?, dlsym?, autotools? оптимизация линкера? (GnuCOBOL CALL является динамическим, эффективно по имени строки во время выполнения, и не передается через ld linkage) или ld.so.conf?

Предположение о переключении gcc? ldconfig по умолчанию?

GnuCOBOL затруднен, и было бы здорово, если бы кто-то мог указать, что нужно сделать, чтобы получить -l библиотеки обратно в двоичные файлы ELF.

ура

1 ответ

Решение

Путь к исправлению, опубликованный в вопросе StackOverflow, указанном выше.

export COB_LDFLAGS='-Wl,--no-as-needed' это простое решение, позволяющее обойти это изменение в оптимизации компоновщика. Реальное исправление будет немного глубже, но Петеш предложил намек, который удовлетворяет насущную потребность.

Другие вопросы по тегам