[ 
https://issues.apache.org/jira/browse/ARROW-4844?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16805787#comment-16805787
 ] 

Jeroen edited comment on ARROW-4844 at 3/30/19 12:10 PM:
---------------------------------------------------------

For example opencv ships the vendored static libs in a special dir 
lib/opencv4/3rdparty. Thereby we can statically link to the library, and the 
vendored libs won't conflict with anything else on the system. I think that is 
more user friendly than restricting static builds by "refusing to vendor 
anything at all".
 
{code}
[MSYS2 CI] mingw-w64-opencv: Checking Binaries
./pkg/mingw-w64-i686-opencv/mingw32/bin/opencv_annotation.exe
./pkg/mingw-w64-i686-opencv/mingw32/bin/opencv_interactive-calibration.exe
./pkg/mingw-w64-i686-opencv/mingw32/bin/opencv_version.exe
./pkg/mingw-w64-i686-opencv/mingw32/bin/opencv_version_win32.exe
./pkg/mingw-w64-i686-opencv/mingw32/bin/opencv_visualisation.exe
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_calib3d.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_core.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_features2d.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_flann.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_gapi.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_highgui.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_imgcodecs.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_imgproc.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_ml.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_objdetect.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_photo.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_stitching.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_video.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_videoio.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/opencv4/3rdparty/libade.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/opencv4/3rdparty/libquirc.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/pkgconfig/opencv4.pc
{code}


was (Author: jeroenooms):
For example opencv ships the vendored static libs in a special dir 
lib/opencv4/3rdparty. I think that is more user friendly than restricting 
static builds by "refusing to vendor anything at all".
 
{code}
[MSYS2 CI] mingw-w64-opencv: Checking Binaries
./pkg/mingw-w64-i686-opencv/mingw32/bin/opencv_annotation.exe
./pkg/mingw-w64-i686-opencv/mingw32/bin/opencv_interactive-calibration.exe
./pkg/mingw-w64-i686-opencv/mingw32/bin/opencv_version.exe
./pkg/mingw-w64-i686-opencv/mingw32/bin/opencv_version_win32.exe
./pkg/mingw-w64-i686-opencv/mingw32/bin/opencv_visualisation.exe
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_calib3d.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_core.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_features2d.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_flann.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_gapi.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_highgui.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_imgcodecs.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_imgproc.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_ml.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_objdetect.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_photo.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_stitching.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_video.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/libopencv_videoio.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/opencv4/3rdparty/libade.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/opencv4/3rdparty/libquirc.a
./pkg/mingw-w64-i686-opencv/mingw32/lib/pkgconfig/opencv4.pc
{code}

> Static libarrow is missing vendored libdouble-conversion
> --------------------------------------------------------
>
>                 Key: ARROW-4844
>                 URL: https://issues.apache.org/jira/browse/ARROW-4844
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: C++
>    Affects Versions: 0.12.1
>            Reporter: Jeroen
>            Assignee: Uwe L. Korn
>            Priority: Major
>
> When trying to statically link the R bindings to libarrow.a, I get linking 
> errors which suggest that libdouble-conversion.a was not properly embedded in 
> libarrow.a. This problem happens on both MacOS and Windows.
> Here is the arrow build log: 
> https://ci.appveyor.com/project/jeroen/rtools-packages/builds/23015303/job/mtgl6rvfde502iu7
> {code}
> C:/rtools40/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
>  
> C:/rtools40/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../lib/libarrow.a(cast.cc.obj):(.text+0x1c77c):
>  undefined reference to 
> `double_conversion::StringToDoubleConverter::StringToDouble(char const*, int, 
> int*) const'
> C:/rtools40/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
>  
> C:/rtools40/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../lib/libarrow.a(converter.cc.obj):(.text+0x5fda):
>  undefined reference to 
> `double_conversion::StringToDoubleConverter::StringToDouble(char const*, int, 
> int*) const'
> C:/rtools40/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
>  
> C:/rtools40/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../lib/libarrow.a(converter.cc.obj):(.text+0x6097):
>  undefined reference to 
> `double_conversion::StringToDoubleConverter::StringToDouble(char const*, int, 
> int*) const'
> C:/rtools40/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
>  
> C:/rtools40/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../lib/libarrow.a(converter.cc.obj):(.text+0x6589):
>  undefined reference to 
> `double_conversion::StringToDoubleConverter::StringToFloat(char const*, int, 
> int*) const'
> C:/rtools40/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
>  
> C:/rtools40/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../lib/libarrow.a(converter.cc.obj):(.text+0x6647):
>  undefined reference to 
> `double_conversion::StringToDoubleConverter::StringToFloat(char const*, int, 
> int*) const'
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to