[Pkg-phototools-devel] Bug#917248: FTBFS building for armel on arm64

Steve McIntyre steve at einval.com
Wed Jan 2 19:28:34 GMT 2019


Control: reopen -1
Control: subject -1 FTBFS building for armel on arm64, alignment problems

Hi Matteo, and Happy New Year to you too!

On Tue, Jan 01, 2019 at 08:34:49PM +0100, Matteo F. Vescovi wrote:
>Version: 2.0.3~dfsg0-3
>
>Hi Steve!
>
>On 2018-12-24 at 17:20 (+00), Steve McIntyre wrote:
>> Package: src:openimageio
>> Version: 1.8.15~dfsg0-1
>> Severity: important
>>
>> I've been doing a full rebuild of the Debian archive, building all
>> source packages targeting armel and armhf using arm64 hardware. We are
>> planning in future to move all of our 32-bit armel/armhf builds to
>> using arm64 machines, so this rebuild is to identify packages that
>> might have problems with this configuration.
>>
>> I've tried to build openimageio like this, and it's failing its build
>> partway through. I *can* build it successfully for arm64-on-arm64 and
>> amd64-on-am64.
>
>> [...]
>
>This issue should be now fixed, since 2.0.3~dfsg0-3 revision added a
>check on GL support.
>
>I'm then closing this bug report, but feel free to re-open it if the
>problem persists.

Sorry to say, I'm now seeing different failures now, from alignment
faults:

...
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/doc'
/usr/bin/make figures
make[3]: Entering directory '/<<PKGBUILDDIR>>/src/doc'
(cmake -E make_directory figures ; \
 cd figures ; \
 OIIOTOOL=""../../../build/src/oiiotool/oiiotool"" bash ../makefigures.bash ; \
)
Using OIIOTOOL=../../../build/src/oiiotool/oiiotool
../makefigures.bash: line 17: 30774 Bus error               (core dumped) ${OIIOTOOL} tahoe-small.jpg --tocolorspace linear --addc 0.2 --tocolorspace sRGB -o a
ddc.jpg
../makefigures.bash: line 18: 30776 Bus error               (core dumped) ${OIIOTOOL} tahoe-small.jpg --tocolorspace linear --mulc 0.5 --tocolorspace sRGB -o m
ulc.jpg
../makefigures.bash: line 19: 30778 Bus error               (core dumped) ${OIIOTOOL} tahoe-small.jpg --tocolorspace linear --chsum:weight=.2126,.7152,.0722 --
ch 0,0,0 --tocolorspace sRGB -o luma.jpg
../makefigures.bash: line 20: 30780 Bus error               (core dumped) ${OIIOTOOL} grid-small.jpg --flip -o flip.jpg
../makefigures.bash: line 21: 30782 Bus error               (core dumped) ${OIIOTOOL} grid-small.jpg --flop -o flop.jpg
../makefigures.bash: line 22: 30784 Bus error               (core dumped) ${OIIOTOOL} grid-small.jpg --flipflop -o flipflop.jpg
../makefigures.bash: line 23: 30786 Bus error               (core dumped) ${OIIOTOOL} grid-small.jpg --rotate90 -o rotate90.jpg
../makefigures.bash: line 24: 30788 Bus error               (core dumped) ${OIIOTOOL} grid-small.jpg --rotate180 -o rotate180.jpg
../makefigures.bash: line 25: 30790 Bus error               (core dumped) ${OIIOTOOL} grid-small.jpg --rotate270 -o rotate270.jpg
../makefigures.bash: line 26: 30793 Bus error               (core dumped) ${OIIOTOOL} grid-small.jpg --transpose -o transpose.jpg
...

with more following. New log online at

  https://www.einval.com/debian/arm/rebuild-logs/armel/FAIL/openimageio_2.0.3~dfsg0-3_armel.log 

Looking at a core dump with gdb, I see:

(sid-armel)steve at mjolnir:~/debian/build/openimageio/openimageio-2.0.3~dfsg0$ gdb build/src/oiiotool/oiiotool src/doc/figures/core 
...
Core was generated by `../../../build/src/oiiotool/oiiotool -autocc tahoe-small.jpg --colormap .25,.25'.
Program terminated with signal SIGBUS, Bus error.
#0  0xf763f0b8 in OpenImageIO_v2_0::decode_exif (exif=..., spec=...) at ./src/libOpenImageIO/exif.cpp:1093
1093    {
[Current thread is 1 (Thread 0xea052010 (LWP 32537))]
(gdb) bt
#0  0xf763f0b8 in OpenImageIO_v2_0::decode_exif(OpenImageIO_v2_0::span<unsigned char const, -1>, OpenImageIO_v2_0::ImageSpec&) (exif=..., spec=...)
    at ./src/libOpenImageIO/exif.cpp:1093
#1  0xf763f490 in OpenImageIO_v2_0::decode_exif(OpenImageIO_v2_0::string_view, OpenImageIO_v2_0::ImageSpec&) (exif=..., spec=...) at ./src/include/OpenImageIO/span.h:73
#2  0xf781f27c in OpenImageIO_v2_0::JpgInput::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, OpenImageIO_v2_0::ImageSpec&)
    (this=this at entry=0x149f328, name="tahoe-small.jpg", newspec=...) at ./src/include/OpenImageIO/string_view.h:306
#3  0xf78205ac in OpenImageIO_v2_0::JpgInput::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, OpenImageIO_v2_0::ImageSpec&, OpenImageIO_v2_0::ImageSpec const&) (this=0x149f328, name="tahoe-small.jpg", newspec=..., config=...) at ./src/jpeg.imageio/jpeginput.cpp:192
#4  0xf77a893c in OpenImageIO_v2_0::pvt::ImageCacheFile::open(OpenImageIO_v2_0::pvt::ImageCachePerThreadInfo*)
    (this=this at entry=0x1415118, thread_info=thread_info at entry=0x1428cc8) at ./src/libtexture/imagecache.cpp:538
#5  0xf77a98dc in OpenImageIO_v2_0::pvt::ImageCacheImpl::verify_file(OpenImageIO_v2_0::pvt::ImageCacheFile*, OpenImageIO_v2_0::pvt::ImageCachePerThreadInfo*, bool)
    (this=this at entry=0x1476440, tf=0x1415118, thread_info=thread_info at entry=0x1428cc8, header_only=header_only at entry=true) at ./src/libtexture/imagecache.cpp:1252
#6  0xf77ade10 in OpenImageIO_v2_0::pvt::ImageCacheImpl::get_image_info(OpenImageIO_v2_0::pvt::ImageCacheFile*, OpenImageIO_v2_0::pvt::ImageCachePerThreadInfo*, int, int, OpenImageIO_v2_0::ustring, OpenImageIO_v2_0::TypeDesc, void*) (this=0x1476440, file=<optimized out>, thread_info=0x1428cc8, subimage=<optimized out>, 
    subimage at entry=0, miplevel=<optimized out>, miplevel at entry=0, dataname=..., datatype=..., data=0xffe5497c, data at entry=0xf79d7968 <__stack_chk_guard>)
    at ./src/libtexture/imagecache.cpp:2530
#7  0xf77acd50 in OpenImageIO_v2_0::pvt::ImageCacheImpl::get_image_info(OpenImageIO_v2_0::ustring, int, int, OpenImageIO_v2_0::ustring, OpenImageIO_v2_0::TypeDesc, void*)
    (this=<optimized out>, filename=..., subimage=0, miplevel=-140674712, dataname=..., datatype=..., data=0xffe5497c) at ./src/include/OpenImageIO/typedesc.h:155
#8  0x004be9cc in input_file(int, char const**) (argc=5402624, argv=<optimized out>) at ./src/include/OpenImageIO/typedesc.h:155
#9  0xf7731378 in OpenImageIO_v2_0::ArgOption::invoke_callback(int, char const**) const (this=0x146ac38, argv=0xffe55ebc, argc=1) at ./src/libutil/argparse.cpp:78
#10 0xf7731378 in OpenImageIO_v2_0::ArgParse::Impl::parse(int, char const**) (this=0x1471fc0, xargc=<optimized out>, xargv=<optimized out>) at ./src/libutil/argparse.cpp:403
#11 0x004a5cbc in getargs(int, char**) (argc=7, argv=0xffe55eb4) at ./src/oiiotool/oiiotool.cpp:5668
#12 0x004a1724 in main(int, char**) (argc=1, argv=0xf79b102c <do_lookup_x+920>) at ./src/oiiotool/oiiotool.cpp:5933
(gdb) list
1088
1089
1090
1091    bool
1092    decode_exif(cspan<uint8_t> exif, ImageSpec& spec)
1093    {
1094    #if DEBUG_EXIF_READ
1095        std::cerr << "Exif dump:\n";
1096        for (size_t i = 0; i < exif.size(); ++i) {
1097            if (exif[i] >= ' ')
(gdb) p exif
$1 = <optimized out>
(gdb) p *exif
Attempt to take address of value not located in memory.

Unfortunately, it's difficult for me to debug here with optimisation
enabled.

amdahl, our arm64 porter box, is configured with armel and armhf
chroots available so you should be able to reproduce this yourself I
hope. Please shout if you need any help...

-- 
Steve McIntyre, Cambridge, UK.                                steve at einval.com
"... the premise [is] that privacy is about hiding a wrong. It's not.
 Privacy is an inherent human right, and a requirement for maintaining
 the human condition with dignity and respect."
  -- Bruce Schneier



More information about the Pkg-phototools-devel mailing list