[Bug 1263576] Re: coinor-osi fails to build from source on arm64 (but did succeed before)
Bug Watch Updater
1263576 at bugs.launchpad.net
Mon Jan 6 10:21:12 UTC 2014
Launchpad has imported 1 comments from the remote bug at
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59695.
If you reply to an imported comment from within Launchpad, your comment
will be sent to the remote bug automatically. Read more about
Launchpad's inter-bugtracker facilities at
https://help.launchpad.net/InterBugTracking.
------------------------------------------------------------------------
On 2014-01-06T09:51:25+00:00 Doko-v wrote:
seen in a segfault running the tests in the coinor-osi package,
https://launchpad.net/bugs/1263576, both in saucy and trusty, version 0.106.4
and 0.106.5. Version 0.103 doesn't show the issue.
both the 4.7 and 4.8 linaro branches show this behaviour, and trunk 20131121
(didn't build a newer one yet).
William Grant tracked that down to a bug with very negative vcall_offsets in
aarch64 multiple inheritance thunks. The example below has two consecutive
thunks, with the second adding 263 instead of subtracting 264.
aarch64_build_constant seems to not handle negative integers. He tried a quick
gcc patch to avoid using aarch64_build_constant, and the coinor-osi tests succeed.
0000000000401ca4 <_ZTv0_n256_N1C2adEv>:
401ca4: f9400010 ldr x16, [x0]
401ca8: f8500211 ldr x17, [x16,#-256]
401cac: 8b110000 add x0, x0, x17
401cb0: 17fffff9 b 401c94 <_ZN1C2adEv>
[...]
0000000000401cc4 <_ZTv0_n264_N1C2aeEv>:
401cc4: f9400010 ldr x16, [x0]
401cc8: d28020f1 mov x17, #0x107 // #263
401ccc: f8716a11 ldr x17, [x16,x17]
401cd0: 8b110000 add x0, x0, x17
401cd4: 17fffff8 b 401cb4 <_ZN1C2aeEv>
Any chance for a quick 2013 review?
Thanks, Matthias
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -2540,8 +2540,8 @@
addr = plus_constant (Pmode, temp0, vcall_offset);
else
{
- aarch64_build_constant (IP1_REGNUM, vcall_offset);
- addr = gen_rtx_PLUS (Pmode, temp0, temp1);
+ aarch64_add_constant (IP0_REGNUM, IP1_REGNUM, vcall_offset);
+ addr = temp0;
}
aarch64_emit_move (temp1, gen_rtx_MEM (Pmode,addr));
Reply at: https://bugs.launchpad.net/ubuntu/+source/coinor-
osi/+bug/1263576/comments/5
** Changed in: gcc
Status: Unknown => New
** Changed in: gcc
Importance: Unknown => Medium
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to gcc-4.8 in Ubuntu.
https://bugs.launchpad.net/bugs/1263576
Title:
coinor-osi fails to build from source on arm64 (but did succeed
before)
Status in The GNU Compiler Collection:
New
Status in Linaro GCC:
New
Status in “clp” package in Ubuntu:
Confirmed
Status in “coinor-osi” package in Ubuntu:
Fix Released
Status in “gcc-4.7” package in Ubuntu:
Fix Released
Status in “gcc-4.8” package in Ubuntu:
New
Status in “clp” source package in Trusty:
Confirmed
Status in “coinor-osi” source package in Trusty:
Fix Released
Status in “gcc-4.7” source package in Trusty:
Fix Released
Status in “gcc-4.8” source package in Trusty:
New
Bug description:
coinor-osi fails to build from source on arm64 (but did fail before),
running the test just segfaults. lowering the compiler options to -O0
shows the same behavior.
cd test; make test
make[2]: Entering directory `/build/buildd/coinor-osi-0.106.4/test'
g++ -DHAVE_CONFIG_H -I. -I`echo .` -I../src/Osi -I`echo ./../src/Osi` -I`echo ./../src/OsiCommonTest` -I/usr/include/coin -D_FORTIFY_SOURCE=2 -g -O2 -Wformat -Werror=format-security -DOSI_BUILD -c -o unitTest.o unitTest.cpp
g++ -DHAVE_CONFIG_H -I. -I`echo .` -I../src/Osi -I`echo ./../src/Osi` -I`echo ./../src/OsiCommonTest` -I/usr/include/coin -D_FORTIFY_SOURCE=2 -g -O2 -Wformat -Werror=format-security -DOSI_BUILD -c -o OsiTestSolver.o OsiTestSolver.cpp
g++ -DHAVE_CONFIG_H -I. -I`echo .` -I../src/Osi -I`echo ./../src/Osi` -I`echo ./../src/OsiCommonTest` -I/usr/include/coin -D_FORTIFY_SOURCE=2 -g -O2 -Wformat -Werror=format-security -DOSI_BUILD -c -o OsiTestSolverInterface.o OsiTestSolverInterface.cpp
g++ -DHAVE_CONFIG_H -I. -I`echo .` -I../src/Osi -I`echo ./../src/Osi` -I`echo ./../src/OsiCommonTest` -I/usr/include/coin -D_FORTIFY_SOURCE=2 -g -O2 -Wformat -Werror=format-security -DOSI_BUILD -c -o OsiTestSolverInterfaceIO.o OsiTestSolverInterfaceIO.cpp
g++ -DHAVE_CONFIG_H -I. -I`echo .` -I../src/Osi -I`echo ./../src/Osi` -I`echo ./../src/OsiCommonTest` -I/usr/include/coin -D_FORTIFY_SOURCE=2 -g -O2 -Wformat -Werror=format-security -DOSI_BUILD -c -o OsiTestSolverInterfaceTest.o OsiTestSolverInterfaceTest.cpp
/bin/bash ../libtool --tag=CXX --mode=link g++ -g -O2 -Wformat -Werror=format-security -DOSI_BUILD -Wl,-Bsymbolic-functions -Wl,-z,relro -o unitTest unitTest.o OsiTestSolver.o OsiTestSolverInterface.o OsiTestSolverInterfaceIO.o OsiTestSolverInterfaceTest.o ../src/OsiCommonTest/libOsiCommonTests.la ../src/Osi/libOsi.la -lCoinUtils -lbz2 -lz -lm
mkdir .libs
g++ -g -O2 -Wformat -Werror=format-security -DOSI_BUILD -Wl,-Bsymbolic-functions -Wl,-z -Wl,relro -o .libs/unitTest unitTest.o OsiTestSolver.o OsiTestSolverInterface.o OsiTestSolverInterfaceIO.o OsiTestSolverInterfaceTest.o ../src/OsiCommonTest/.libs/libOsiCommonTests.so ../src/Osi/.libs/libOsi.so -lCoinUtils -lbz2 -lz -lm
creating unitTest
./unitTest -mpsDir=`echo /usr/share/coin/Data/Sample`
Testing OsiRowCut with OsiTestSolverInterface
make[2]: *** [test] Segmentation fault
make[2]: Leaving directory `/build/buildd/coinor-osi-0.106.4/test'
make[1]: *** [test] Error 2
To manage notifications about this bug go to:
https://bugs.launchpad.net/gcc/+bug/1263576/+subscriptions
More information about the foundations-bugs
mailing list