Uploaded image for project: 'Apache Arrow'
  1. Apache Arrow
  2. ARROW-519

[C++] Missing vtable in libarrow.dylib on Xcode 6.4

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 0.2.0
    • C++
    • None

    Description

      For some reason, on Xcode 6.4 there are two missing vtables for NumericArray<DoubleType> and FloatType:

      $ nm -g libarrow.dylib | c++filt | grep vtable
                       U vtable for __cxxabiv1::__class_type_info
                       U vtable for __cxxabiv1::__si_class_type_info
                       U vtable for __cxxabiv1::__vmi_class_type_info
      0000000000035f10 S vtable for arrow::BinaryType
      0000000000036470 S vtable for arrow::DoubleType
      0000000000035be0 S vtable for arrow::MemoryPool
      00000000000358f0 S vtable for arrow::PoolBuffer
      0000000000035f90 S vtable for arrow::StringType
      0000000000035ff0 S vtable for arrow::StructType
      0000000000035610 S vtable for arrow::UnionArray
      0000000000035570 S vtable for arrow::BinaryArray
      0000000000035e20 S vtable for arrow::BooleanType
      0000000000036070 S vtable for arrow::DecimalType
      0000000000035970 S vtable for arrow::ListBuilder
      00000000000355c0 S vtable for arrow::StringArray
      00000000000357a0 S vtable for arrow::StructArray
      00000000000359f0 S vtable for arrow::ArrayBuilder
      0000000000035520 S vtable for arrow::BooleanArray
      0000000000036280 S vtable for arrow::IntervalType
      0000000000036570 D vtable for arrow::NumericArray<arrow::UInt16Type>
      00000000000365c0 D vtable for arrow::NumericArray<arrow::UInt32Type>
      0000000000036610 D vtable for arrow::NumericArray<arrow::UInt64Type>
      0000000000036840 D vtable for arrow::NumericArray<arrow::HalfFloatType>
      00000000000367a0 D vtable for arrow::NumericArray<arrow::TimestampType>
      00000000000367f0 D vtable for arrow::NumericArray<arrow::DateType>
      0000000000036660 D vtable for arrow::NumericArray<arrow::Int8Type>
      00000000000366b0 D vtable for arrow::NumericArray<arrow::Int16Type>
      0000000000036700 D vtable for arrow::NumericArray<arrow::Int32Type>
      0000000000036750 D vtable for arrow::NumericArray<arrow::Int64Type>
      0000000000036520 D vtable for arrow::NumericArray<arrow::UInt8Type>
      00000000000359b0 S vtable for arrow::BinaryBuilder
      0000000000036310 S vtable for arrow::HalfFloatType
      0000000000035ae0 S vtable for arrow::StringBuilder
      0000000000035b40 S vtable for arrow::StructBuilder
      0000000000036210 S vtable for arrow::TimestampType
      0000000000035a40 S vtable for arrow::BooleanBuilder
      0000000000035cf0 S vtable for arrow::DictionaryType
      0000000000035db0 S vtable for arrow::FixedWidthType
      00000000000354d0 S vtable for arrow::PrimitiveArray
      0000000000035660 S vtable for arrow::DictionaryArray
      0000000000038420 D vtable for arrow::PrimitiveBuilder<arrow::DoubleType>
      0000000000038160 D vtable for arrow::PrimitiveBuilder<arrow::UInt16Type>
      00000000000381a0 D vtable for arrow::PrimitiveBuilder<arrow::UInt32Type>
      00000000000381e0 D vtable for arrow::PrimitiveBuilder<arrow::UInt64Type>
      00000000000383a0 D vtable for arrow::PrimitiveBuilder<arrow::HalfFloatType>
      0000000000038360 D vtable for arrow::PrimitiveBuilder<arrow::TimestampType>
      0000000000038320 D vtable for arrow::PrimitiveBuilder<arrow::DateType>
      0000000000038220 D vtable for arrow::PrimitiveBuilder<arrow::Int8Type>
      00000000000383e0 D vtable for arrow::PrimitiveBuilder<arrow::FloatType>
      0000000000038260 D vtable for arrow::PrimitiveBuilder<arrow::Int16Type>
      00000000000382a0 D vtable for arrow::PrimitiveBuilder<arrow::Int32Type>
      00000000000382e0 D vtable for arrow::PrimitiveBuilder<arrow::Int64Type>
      0000000000038120 D vtable for arrow::PrimitiveBuilder<arrow::UInt8Type>
      0000000000035480 S vtable for arrow::Array
      00000000000358d0 S vtable for arrow::Buffer
      0000000000035cb0 S vtable for arrow::DataType
      0000000000036130 S vtable for arrow::DateType
      0000000000035e90 S vtable for arrow::ListType
      0000000000035d50 S vtable for arrow::NullType
      00000000000361a0 S vtable for arrow::TimeType
      00000000000363c0 S vtable for arrow::FloatType
      0000000000035730 S vtable for arrow::ListArray
      00000000000356c0 S vtable for arrow::NullArray
      00000000000360d0 S vtable for arrow::UnionType
                       U vtable for std::__1::bad_weak_ptr
      

      On Xcode 8 (newer clang), the vtables are there. It must have something to do with the template specializations in arrow/array.h – I am not sure what else it might be.

      Attachments

        Activity

          People

            wesm Wes McKinney
            wesm Wes McKinney
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: