Сообщается о "неопределенной ссылке" при выполнении rpmbuild на rhel8, о другом поведении компоновщика g cc на x86_64 и s390x? - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь установить mlnx ofed на rhel8 из исходников (MLNX_OFED_SR C -5.0-2.1.8.0.tgz) (x86_64 и s390x соответственно), установка на x86_64 не вызывает проблем, но на s390x установка сообщает об ошибке "неопределенная ссылка".

+ /usr/bin/make
/usr/bin/make  all-am
make[1]: Entering directory '/var/tmp/OFED_topdir/BUILD/perftest-4.4'
  CC       src/get_clock.o
In file included from /usr/include/sys/time.h:21,
                 from src/get_clock.c:43:
/usr/include/features.h:184:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
 # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
   ^~~~~~~
  CC       src/perftest_communication.o
  CC       src/perftest_parameters.o
  CC       src/perftest_resources.o
  CC       src/perftest_counters.o
  CC       src/raw_ethernet_resources.o
  AR       libperftest.a
  CC       src/send_bw.o
  CC       src/multicast_resources.o
  CCLD     ib_send_bw
/usr/lib/gcc/s390x-redhat-linux/8/../../../../lib64/libmlx5.a(verbs.c.o): In function `create_cq':
(.text+0x860): undefined reference to `rdmacore28_0_ibv_cmd_create_cq'
(.text+0x912): undefined reference to `rdmacore28_0_ibv_cmd_create_cq_ex'
/usr/lib/gcc/s390x-redhat-linux/8/../../../../lib64/libmlx5.a(verbs.c.o): In function `_mlx5_create_flow_action_esp':
(.text+0x9ba): undefined reference to `rdmacore28_0_ibv_cmd_create_flow_action_esp'

......................

/usr/lib/gcc/s390x-redhat-linux/8/../../../../lib64/libmlx5.a(mlx5.c.o): In function `drv__register_driver':
(.text.startup[.text.startup.group]+0x8): undefined reference to `rdmacore28_0_verbs_register_driver_25'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:711: ib_send_bw] Error 1
make[1]: Leaving directory '/var/tmp/OFED_topdir/BUILD/perftest-4.4'
make: *** [Makefile:552: all] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.SFtR26 (%build)

журнал rpmbuild на s390x: https://drive.google.com/file/d/1vSF8eRPLGP9eDWgQ2wrtWvqkm1R5_B-J/view?usp=sharing

rpmbuild log на x86_64: https://drive.google.com/file/d/1SFGwmJBgh7Y8shL75Nr5NFVhcj_aqU-V/view?usp=sharing

Я проверил оба вывода nm для указанного объектного файла (/usr/lib64/libmlx5.a) на обеих машинах, не обнаружил никакой разницы для "неопределенных символов" упомянутые в журнале ошибок.

нм вывод на s390x: https://drive.google.com/file/d/1Wu9kPX2R6w2_RDlAHvyG4Qre1JUXxThz/view?usp=sharing

нм вывод на x86_64: https://drive.google.com/file/d/1xCATkGjhANXakEiYnu7td7orkuWeUkee/view?usp=sharing

Итак, в чем может быть причина? другое поведение компоновщика g cc?

С уважением, FuLong

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...