apache / orc

Apache ORC - the smallest, fastest columnar storage for Hadoop workloads
https://orc.apache.org/
Apache License 2.0
675 stars 480 forks source link

1.9.2: build fails #1787

Closed kloczek closed 6 months ago

kloczek commented 7 months ago

I;m using gcc 14.x from Fedora rawhide

[tkloczko@pers-jacek x86_64-redhat-linux-gnu]$ make -k
/usr/bin/cmake -S/home/tkloczko/rpmbuild/BUILD/orc-1.9.2 -B/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/x86_64-redhat-linux-gnu --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /home/tkloczko/rpmbuild/BUILD/orc-1.9.2/x86_64-redhat-linux-gnu/CMakeFiles /home/tkloczko/rpmbuild/BUILD/orc-1.9.2/x86_64-redhat-linux-gnu//CMakeFiles/progress.marks
make  -f CMakeFiles/Makefile2 all
make[1]: Entering directory '/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/x86_64-redhat-linux-gnu'
make  -f c++/src/CMakeFiles/orc.dir/build.make c++/src/CMakeFiles/orc.dir/depend
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/x86_64-redhat-linux-gnu'
cd /home/tkloczko/rpmbuild/BUILD/orc-1.9.2/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/tkloczko/rpmbuild/BUILD/orc-1.9.2 /home/tkloczko/rpmbuild/BUILD/orc-1.9.2/c++/src /home/tkloczko/rpmbuild/BUILD/orc-1.9.2/x86_64-redhat-linux-gnu /home/tkloczko/rpmbuild/BUILD/orc-1.9.2/x86_64-redhat-linux-gnu/c++/src /home/tkloczko/rpmbuild/BUILD/orc-1.9.2/x86_64-redhat-linux-gnu/c++/src/CMakeFiles/orc.dir/DependInfo.cmake "--color="
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/x86_64-redhat-linux-gnu'
make  -f c++/src/CMakeFiles/orc.dir/build.make c++/src/CMakeFiles/orc.dir/build
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/x86_64-redhat-linux-gnu'
[  2%] Building CXX object c++/src/CMakeFiles/orc.dir/ColumnReader.cc.o
cd /home/tkloczko/rpmbuild/BUILD/orc-1.9.2/x86_64-redhat-linux-gnu/c++/src && /usr/bin/g++ -DENABLE_METRICS=0 -Dorc_EXPORTS -I/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/x86_64-redhat-linux-gnu/c++/include -I/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/c++/include -I/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/c++/src -I/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/x86_64-redhat-linux-gnu/c++/src -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -g -grecord-gcc-switches -pipe -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fdata-sections -ffunction-sections -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -flto=auto -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -Wall -Werror=format-security -std=c++17 -Wall -Wno-unknown-pragmas -Wno-conversion -Wno-array-bounds -Wno-stringop-overread -Werror -std=c++17 -Wall -Wno-unknown-pragmas -Wno-conversion -Wno-array-bounds -Wno-stringop-overread -Werror -O3 -g -DNDEBUG -fno-omit-frame-pointer -std=gnu++17 -fPIC -MD -MT c++/src/CMakeFiles/orc.dir/ColumnReader.cc.o -MF CMakeFiles/orc.dir/ColumnReader.cc.o.d -o CMakeFiles/orc.dir/ColumnReader.cc.o -c /home/tkloczko/rpmbuild/BUILD/orc-1.9.2/c++/src/ColumnReader.cc
/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/c++/src/ColumnReader.cc: In constructor ‘orc::TimestampColumnReader::TimestampColumnReader(const orc::Type&, orc::StripeStreams&, bool)’:
/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/c++/src/ColumnReader.cc:272:21: error: possibly dangling reference to a temporary [-Werror=dangling-reference]
  272 |     const Timezone& writerTimezone;
      |                     ^~~~~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/c++/src/ColumnReader.cc:291:57: note: the temporary was destroyed at the end of the full expression ‘orc::getTimezoneByName(std::__cxx11::basic_string<char>(((const char*)"GMT"), std::allocator<char>()))’
  291 |         writerTimezone(isInstantType ? getTimezoneByName("GMT") : stripe.getWriterTimezone()),
      |                                        ~~~~~~~~~~~~~~~~~^~~~~~~
/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/c++/src/ColumnReader.cc:273:21: error: possibly dangling reference to a temporary [-Werror=dangling-reference]
  273 |     const Timezone& readerTimezone;
      |                     ^~~~~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/c++/src/ColumnReader.cc:292:57: note: the temporary was destroyed at the end of the full expression ‘orc::getTimezoneByName(std::__cxx11::basic_string<char>(((const char*)"GMT"), std::allocator<char>()))’
  292 |         readerTimezone(isInstantType ? getTimezoneByName("GMT") : stripe.getReaderTimezone()),
      |                                        ~~~~~~~~~~~~~~~~~^~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [c++/src/CMakeFiles/orc.dir/build.make:296: c++/src/CMakeFiles/orc.dir/ColumnReader.cc.o] Error 1
[  4%] Building CXX object c++/src/CMakeFiles/orc.dir/ColumnWriter.cc.o
cd /home/tkloczko/rpmbuild/BUILD/orc-1.9.2/x86_64-redhat-linux-gnu/c++/src && /usr/bin/g++ -DENABLE_METRICS=0 -Dorc_EXPORTS -I/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/x86_64-redhat-linux-gnu/c++/include -I/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/c++/include -I/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/c++/src -I/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/x86_64-redhat-linux-gnu/c++/src -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -g -grecord-gcc-switches -pipe -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fdata-sections -ffunction-sections -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -flto=auto -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -Wall -Werror=format-security -std=c++17 -Wall -Wno-unknown-pragmas -Wno-conversion -Wno-array-bounds -Wno-stringop-overread -Werror -std=c++17 -Wall -Wno-unknown-pragmas -Wno-conversion -Wno-array-bounds -Wno-stringop-overread -Werror -O3 -g -DNDEBUG -fno-omit-frame-pointer -std=gnu++17 -fPIC -MD -MT c++/src/CMakeFiles/orc.dir/ColumnWriter.cc.o -MF CMakeFiles/orc.dir/ColumnWriter.cc.o.d -o CMakeFiles/orc.dir/ColumnWriter.cc.o -c /home/tkloczko/rpmbuild/BUILD/orc-1.9.2/c++/src/ColumnWriter.cc
/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/c++/src/ColumnWriter.cc: In constructor ‘orc::TimestampColumnWriter::TimestampColumnWriter(const orc::Type&, const orc::StreamsFactory&, const orc::WriterOptions&, bool)’:
/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/c++/src/ColumnWriter.cc:1646:21: error: possibly dangling reference to a temporary [-Werror=dangling-reference]
 1646 |     const Timezone& timezone;
      |                     ^~~~~~~~
/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/c++/src/ColumnWriter.cc:1654:51: note: the temporary was destroyed at the end of the full expression ‘orc::getTimezoneByName(std::__cxx11::basic_string<char>(((const char*)"GMT"), std::allocator<char>()))’
 1654 |         timezone(isInstantType ? getTimezoneByName("GMT") : options.getTimezone()),
      |                                  ~~~~~~~~~~~~~~~~~^~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [c++/src/CMakeFiles/orc.dir/build.make:310: c++/src/CMakeFiles/orc.dir/ColumnWriter.cc.o] Error 1
[  7%] Building CXX object c++/src/CMakeFiles/orc.dir/ConvertColumnReader.cc.o
cd /home/tkloczko/rpmbuild/BUILD/orc-1.9.2/x86_64-redhat-linux-gnu/c++/src && /usr/bin/g++ -DENABLE_METRICS=0 -Dorc_EXPORTS -I/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/x86_64-redhat-linux-gnu/c++/include -I/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/c++/include -I/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/c++/src -I/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/x86_64-redhat-linux-gnu/c++/src -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -g -grecord-gcc-switches -pipe -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fdata-sections -ffunction-sections -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -flto=auto -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -Wall -Werror=format-security -std=c++17 -Wall -Wno-unknown-pragmas -Wno-conversion -Wno-array-bounds -Wno-stringop-overread -Werror -std=c++17 -Wall -Wno-unknown-pragmas -Wno-conversion -Wno-array-bounds -Wno-stringop-overread -Werror -O3 -g -DNDEBUG -fno-omit-frame-pointer -std=gnu++17 -fPIC -MD -MT c++/src/CMakeFiles/orc.dir/ConvertColumnReader.cc.o -MF CMakeFiles/orc.dir/ConvertColumnReader.cc.o.d -o CMakeFiles/orc.dir/ConvertColumnReader.cc.o -c /home/tkloczko/rpmbuild/BUILD/orc-1.9.2/c++/src/ConvertColumnReader.cc
/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/c++/src/ConvertColumnReader.cc: In constructor ‘orc::ConvertToTimestampColumnReader::ConvertToTimestampColumnReader(const orc::Type&, const orc::Type&, orc::StripeStreams&, bool)’:
/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/c++/src/ConvertColumnReader.cc:409:26: error: possibly dangling reference to a temporary [-Werror=dangling-reference]
  409 |     const orc::Timezone& readerTimezone;
      |                          ^~~~~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/orc-1.9.2/c++/src/ConvertColumnReader.cc:402:85: note: the temporary was destroyed at the end of the full expression ‘orc::getTimezoneByName(std::__cxx11::basic_string<char>(((const char*)"GMT"), std::allocator<char>()))’
  402 |           readerTimezone(readType.getKind() == TIMESTAMP_INSTANT ? getTimezoneByName("GMT")
      |                                                                    ~~~~~~~~~~~~~~~~~^~~~~~~
cc1plus: all warnings being treated as errors
wgtmac commented 7 months ago

Thanks for reporting the issue! It seems to be caused by this issue: https://trofi.github.io/posts/264-gcc-s-new-Wdangling-reference-warning.html

dongjoon-hyun commented 7 months ago

Thank you, @kloczek . Does this happen only at branch-1.9? How about the other live branches, main, branch-2.0, branch-1.8, branch-1.7?

dongjoon-hyun commented 6 months ago

Are you saying that you are in Fedora 40? I'm not sure that Apache ORC community can support every unreleased and unstable version.

For the record, Apache ORC community has Fedora 37 test coverage in CI. We may add more versions to check this, but 40 is definitely out of scope.

Screenshot 2024-02-15 at 10 38 39

kloczek commented 6 months ago

Are you saying that you are in Fedora 40?

No, I'm on my on distribution.

I'm not sure that Apache ORC community can support every unreleased and unstable version.

I've not been asking to support anything. I'm only messenger reporting that in exact conditions build fails.

dongjoon-hyun commented 6 months ago

Got it.

wgtmac commented 6 months ago

This is fixed and will be released in the 2.0.0