Bug 1410576
| Summary: | SEGV when linking with intel 16.0.3 compiler library libifcore.so | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Satish Balay <balay> |
| Component: | glibc | Assignee: | glibc team <glibc-bugzilla> |
| Status: | CLOSED DUPLICATE | QA Contact: | qe-baseos-tools-bugs |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 7.3 | CC: | ashankar, fweimer, mnewsome, pfrankli |
| Target Milestone: | rc | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2017-01-25 14:13:26 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
This looks like a duplicate of bug 1377895. Satish, based on your comments, I assume that the issue does not just affect the Intel compiler binaries, but also code which was compiled with the Intel compilers. This is new information; I was previously under the impression that it would only affect the compilers themselves. Would you please confirm that once more? I did not see icc give SEGV in my usage. The errors I've seen so far are with binaries created by the compiler - that are linked with some of the compiler .so files - as I've documented in this report. The initial issue was as follows: - [before upgrade] compile library/binaries with intel compilers. [they work!] - upgrade glibc - now the previously running binaries [that were compiled with intel compiler (which were linked to some of the compiler sharedlibraries - like libifcore.so) ] give SEGV. Static builds [that use libifcore.a - not .so ] work fine. [For eg: a static build of mpich works fine..] BTW: wrt bug 1377895 - mpicc is a icc binary - using its .so library files - hence it breaks.. ['ldd mpicc' lists 'libintlc.so.5' this one also gets listed in the simple test code breakage above.] One additional note regarding LD_PRELOAD wokraround. It works with existing precompiled icc binaries. However - when using buildscripts (like configure - which can do compile/run tests etc.) which invoke both gcc binaries [like env, uname etc..] and icc binaries - its not easy to selectively use this workaround with only icc binaries. using LD_PRELOAD universally with such buildscripts causes gcc binaries to crash.. -bash-4.2$ LD_PRELOAD=/lib64/libc.so.6:/opt/intel/2016u3/lib/intel64/libintlc.so.5 uname Segmentation fault (core dumped) -bash-4.2$ LD_PRELOAD=/lib64/libc.so.6:/opt/intel/2016u3/lib/intel64/libintlc.so.5 env Segmentation fault (core dumped) -bash-4.2$ To really use intel-16 compilers - the alternative that works for me is to copy libintlc.so.5 from intel-17 to intel-16 compiler location. [replacing the intel-16 version] [yeah - it requires access to intel-17 - and if one has that - one could perhaps switch to intel-17] Intel published a support article regarding this matter: https://software.intel.com/en-us/articles/intel-compiler-version-16-not-compatible-with-recent-libcso6 *** This bug has been marked as a duplicate of bug 1377895 *** |
Description of problem: After upgrade to latest glibc - binaries that are compiled with intel 16.0.3 - that use shared libraries break giving SEGV Version-Release number of selected component (if applicable): -bash-4.2$ rpm -q glibc glibc-2.17-157.el7_3.1.x86_64 glibc-2.17-157.el7_3.1.i686 -bash-4.2$ cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.3 (Maipo) -bash-4.2$ How reproducible: Always Steps to Reproduce: 1. install intel compilers 16.0.3 2. compile any code with 'icc -lifcore' 3. run Actual results: Segmentation fault (core dumped) Expected results: No such error. Additional info: This issue was initially observed on SL7 - and reproduced on CENTOS7 - and now on RHEL7 aswell. -bash-4.2$ icc --version icc (ICC) 16.0.3 20160415 Copyright (C) 1985-2016 Intel Corporation. All rights reserved. -bash-4.2$ cat x.c #include <stdio.h> int main() { printf("test\n");return 0; } -bash-4.2$ icc x.c -bash-4.2$ ./a.out test -bash-4.2$ icc x.c -lifcore -bash-4.2$ ./a.out Segmentation fault (core dumped) -bash-4.2$ gdb a.out <snip> (gdb) where #0 0x00007ffff722865e in ?? () #1 0x00007ffff7de9675 in _dl_relocate_object () from /lib64/ld-linux-x86-64.so.2 #2 0x00007ffff7de0792 in dl_main () from /lib64/ld-linux-x86-64.so.2 #3 0x00007ffff7df3e36 in _dl_sysdep_start () from /lib64/ld-linux-x86-64.so.2 #4 0x00007ffff7de1a31 in _dl_start () from /lib64/ld-linux-x86-64.so.2 #5 0x00007ffff7dde1e8 in _start () from /lib64/ld-linux-x86-64.so.2 #6 0x0000000000000001 in ?? () #7 0x00007fffffffb6b3 in ?? () #8 0x0000000000000000 in ?? () (gdb) -bash-4.2$ LD_DEBUG=all ./a.out <snip> 219423: symbol=__xpg_basename; lookup in file=./a.out [0] 219423: symbol=__xpg_basename; lookup in file=/opt/intel/2016u3/compilers_and_libraries_2016.3.210/linux/compiler/lib/intel64/libifcore.so.5 [0] 219423: symbol=__xpg_basename; lookup in file=/lib64/libm.so.6 [0] 219423: symbol=__xpg_basename; lookup in file=/lib64/libgcc_s.so.1 [0] 219423: symbol=__xpg_basename; lookup in file=/lib64/libc.so.6 [0] 219423: binding file /opt/intel/2016u3/compilers_and_libraries_2016.3.210/linux/compiler/lib/intel64/libintlc.so.5 [0] to /lib64/libc.so.6 [0]: normal symbol `__xpg_basename' 219423: symbol=memmove; lookup in file=./a.out [0] 219423: symbol=memmove; lookup in file=/opt/intel/2016u3/compilers_and_libraries_2016.3.210/linux/compiler/lib/intel64/libifcore.so.5 [0] 219423: symbol=memmove; lookup in file=/lib64/libm.so.6 [0] 219423: symbol=memmove; lookup in file=/lib64/libgcc_s.so.1 [0] 219423: symbol=memmove; lookup in file=/lib64/libc.so.6 [0] 219423: binding file /opt/intel/2016u3/compilers_and_libraries_2016.3.210/linux/compiler/lib/intel64/libintlc.so.5 [0] to /lib64/libc.so.6 [0]: normal symbol `memmove' Segmentation fault (core dumped) Downgrading glibc to 2.17-106.el7_2.8 gets this working. And intel compilers versions 17.0.0, 17.0.1 do not have this issue. This could very well be due to bugs in intel 16.0.3 compiler..