статическое связывание в AIX с помощью pthread - PullRequest
1 голос
/ 13 декабря 2008

Я читаю и исследую это пару дней и решил, что мне нужна помощь извне!

(и этот сайт показался мне хорошим местом, поэтому я подумал, что опубликуйте мой вопрос здесь и посмотрите, как оно пойдет)

наша маленькая компания не создавала наши приложения в AIX в течение нескольких лет, и мне было поручено это задание (хорошо вещь, которая мне нравится вызов).

проблему, которую я имею, легко описать, и я вижу другие люди также испытывают это, хотя я не могу показаться найти ответ.

если я связываю приложение "не статично", то есть я не использую "-static" в командах сборки приложение отлично работает при разработке машина, но не на нашей другой машине AIX, которую мы используем для тестирование.

[быстрые заметки на двух машинах;

Dev:

~$ uname -a
AIX aix3 2 5 000BA50D4C00

Тест:

~$ uname -a
AIX aix4 1 5 002459A64C00

]

если я свяжусь с "-static", приложение "сломается" во время выполнения на компьютере разработчика, когда выдается исключение:

terminate called after throwing an instance of 'MyAppError'
Segmentation fault      (core dumped)

И (как будто этого было недостаточно), приложение все еще не делает запустить на тестовой машине:

exec(): 0509-036 Cannot load program ./myapp because of the following errors:
        0509-130 Symbol resolution failed for myapp because:
        0509-136   Symbol _sigqueue (number 65) is not exported from
                   dependent module /unix.
        0509-136   Symbol ra_attachrset (number 95) is not exported from
                   dependent module /unix.
        0509-136   Symbol __rs_pickmcm (number 99) is not exported from
                   dependent module /unix.
        0509-136   Symbol _timer_create (number 122) is not exported from
                   dependent module /unix.
        0509-136   Symbol _timer_delete (number 123) is not exported from
                   dependent module /unix.
        0509-136   Symbol _timer_getoverrun (number 124) is not exported from
                   dependent module /unix.
        0509-136   Symbol _timer_gettime (number 125) is not exported from
                   dependent module /unix.
        0509-136   Symbol _timer_settime (number 126) is not exported from
                   dependent module /unix.
        0509-136   Symbol count_event_waiters (number 159) is not exported from
                   dependent module /unix.
        0509-192 Examine .loader section symbols with the
                 'dump -Tv' command.

Я должен отметить, что мы связываемся с "-pthead", и я прочитал несколько статей, которые говорят, что это не хорошо связывать статически при использовании pthread.

у меня болит мозг.

Буду очень признателен за любую информацию по этому вопросу.

1 Ответ

1 голос
/ 13 декабря 2008

Частично ваша проблема в том, что вы работаете на AIX 5.2 и пытаетесь провести тестирование на AIX 5.1 (информация о uname -a показывает это - спасибо, что включили его). Обычно вы можете использовать более старую платформу и работать на более новой, но не наоборот. Итак, это начало ваших неприятностей.

У AIX 5.1 и 5.2 длинный зуб; у вас должна быть хотя бы AIX 5.3 и, возможно, AIX 6.x.

...