Hi lh_mouse, Thanks for your reply. Unfortunately, in this case I don't have full control of the toolchain (because I'm compiling using the golang toolchain).
In any case, using clang/gcc as a linker is quite common; that's why `-Wl` exists as a flag to those tools. Does anyone have any insight as to why `-Wl` is apparently not respected under mingw-w64? On Tue, May 10, 2016 at 11:57 AM, Tamir Duberstein <[email protected]> wrote: > Hello! > > I've been attempting to cross-compile CockroachDB to Windows using > mingw-w64. The compilation strategy used for CockroachDB involves > producing static archives with missing symbols (this is due to how > golang's tooling compiles c/c++ code). > > In our linux builds, we pass `-Wl,--unresolved-symbols=ignore-all` to > the compiler to silence these unresolved symbols warnings in our > intermediate static archives - however, it seems that mingw-w64's g++ > binary (`x86_64-w64-mingw32-g++-posix` is the one I've tested) doesn't > respect this flag. > > Does anyone know why this might be, or where to begin investigating? > > More detail is here: > https://github.com/karalabe/xgo/issues/26#issuecomment-214521117 > > Our build output ends up with: > ``` > x86_64-w64-mingw32-g++-posix -I . -m64 -mthreads -fmessage-length=0 > -Iinternal -Iinternal/include -Iinternal/db -Iinternal/util > -Iinternal/utilities/merge_operators/string_append > -I../../cockroachdb/c-snappy/internal -DNDEBUG -DSNAPPY -DOS_WIN -I > $WORK/github.com/cockroachdb/c-rocksdb/_obj/ -D_WIN32_WINNT=0x0600 > -std=c++11 -fno-omit-frame-pointer -momit-leaf-frame-pointer -o > $WORK/github.com/cockroachdb/c-rocksdb/_obj/port_platform.cc.o -c > ./port_platform.cc > x86_64-w64-mingw32-g++-posix -I . -m64 -mthreads -fmessage-length=0 -o > $WORK/github.com/cockroachdb/c-rocksdb/_obj/_cgo_.o > $WORK/github.com/cockroachdb/c-rocksdb/_obj/_cgo_main.o <long list of > input files> -g -O2 -Wl,--unresolved-symbols=ignore-all -lrpcrt4 > # github.com/cockroachdb/c-rocksdb > /tmp/go-build123696693/github.com/cockroachdb/c-rocksdb/_obj/internal_table_block_based_table_builder.cc.o:internal_table_block_based_table_builder.cc:(.text$_ZN7rocksdb15Snappy_CompressERKNS_18CompressionOptionsEPKcyPSs[_ZN7rocksdb15Snappy_CompressERKNS_18CompressionOptionsEPKcyPSs]+0x20): > undefined reference to `snappy::MaxCompressedLength(unsigned long > long)' > /tmp/go-build123696693/github.com/cockroachdb/c-rocksdb/_obj/internal_table_block_based_table_builder.cc.o:internal_table_block_based_table_builder.cc:(.text$_ZN7rocksdb15Snappy_CompressERKNS_18CompressionOptionsEPKcyPSs[_ZN7rocksdb15Snappy_CompressERKNS_18CompressionOptionsEPKcyPSs]+0x5a): > undefined reference to `snappy::RawCompress(char const*, unsigned long > long, char*, unsigned long long*)' > /tmp/go-build123696693/github.com/cockroachdb/c-rocksdb/_obj/internal_table_format.cc.o:internal_table_format.cc:(.text$_ZN7rocksdb28Snappy_GetUncompressedLengthEPKcyPy[_ZN7rocksdb28Snappy_GetUncompressedLengthEPKcyPy]+0x27): > undefined reference to `snappy::GetUncompressedLength(char const*, > unsigned long long, unsigned long long*)' > /tmp/go-build123696693/github.com/cockroachdb/c-rocksdb/_obj/internal_table_format.cc.o:internal_table_format.cc:(.text$_ZN7rocksdb17Snappy_UncompressEPKcyPc[_ZN7rocksdb17Snappy_UncompressEPKcyPc]+0x27): > undefined reference to `snappy::RawUncompress(char const*, unsigned > long long, char*)' > collect2: error: ld returned 1 exit status > 2016/04/25 17:01:39 Failed to cross compile package: exit status 2. > ``` > > Thanks in advance for your help! ------------------------------------------------------------------------------ Mobile security can be enabling, not merely restricting. Employees who bring their own devices (BYOD) to work are irked by the imposition of MDM restrictions. Mobile Device Manager Plus allows you to control only the apps on BYO-devices by containerizing them, leaving personal data untouched! https://ad.doubleclick.net/ddm/clk/304595813;131938128;j _______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
