Opened 10 years ago

Closed 5 years ago

#684 closed defect (fixed)

xmltester make check failure on MAC OS X 10.9

Reported by: dheinzeller Owned by: strk
Priority: minor Milestone: 3.8.0
Component: XML Tests Version: 3.4.2
Severity: Unassigned Keywords: xmltester make check fail mac os x
Cc: connor, mloskot

Description (last modified by mloskot)

Hi, I am not sure how serious the problem is. The test is looking for throw_out_of_range in libstdc++ which it can't find:

{{ uname -a: Darwin Kernel Version 13.0.0: Thu Sep 19 22:22:27 PDT 2013; root:xnu-2422.1.72~6/RELEASE_X86_64 x86_64

gcc -v (similar for g++ -v): Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/opt/local/bin/../libexec/gcc/x86_64-apple-darwin13.0.0/4.9.0/lto-wrapper Target: x86_64-apple-darwin13.0.0 Configured with: ../gcc-4.9-20131215/configure --enable-languages=c++,fortran Thread model: posix gcc version 4.9.0 20131215 (experimental) (GCC) }}}

Tested geos versions: 3.3.3 and 3.4.2

Configure settings:

CC=gcc \
CFLAGS="-m64 -fPIC" \
LDFLAGS="-m64 -fPIC" \
CPPFLAGS="-m64 -fPIC" \
CXX=g++ \
CXXFLAGS="-m64 -fPIC" \
./configure \
--prefix=/opt/local \
--enable-shared \
--enable-static
make
make check:
...
Making check in unit
/Applications/Xcode.app/Contents/Developer/usr/bin/make  geos_unit
make[4]: `geos_unit' is up to date.
/Applications/Xcode.app/Contents/Developer/usr/bin/make  check-TESTS
dyld: Symbol not found: __ZSt24__throw_out_of_range_fmtPKcz
  Referenced from: /opt/local/src/geos-3.4.2/tests/unit/.libs/geos_unit
  Expected in: /usr/local/lib/libstdc++.6.dylib
 in /opt/local/src/geos-3.4.2/tests/unit/.libs/geos_unit
/bin/sh: line 1: 97590 Trace/BPT trap: 5       ${dir}$tst
FAIL: geos_unit
==================
1 of 1 test failed
==================

Change History (5)

comment:1 by connor, 10 years ago

Cc: connor added

I happened across this ticket right after having a similar issue with building native libraries on Accumulo 1.5.1. The solution for me was as simple as adding the CXX_FLAG "-stdlib=libstdc++" for OS X builds. Here was my quick-fix (made in the Makefile), which was adapted from Accumulo's fix for this issue in their 1.6 release:

ifeq ($(shell uname),Darwin)
  LIBS:= libNativeMap-Mac_OS_X-x86_64-64.jnilib
  # FROM:
  # CXXFLAGS=-m64 -dynamiclib -O3 -I/System/Library/Frameworks/JavaVM.framework/Headers
  #
  # TO:
  CXXFLAGS=-stdlib=libstdc++ -m64 -dynamiclib -O3 -I/System/Library/Frameworks/JavaVM.framework/Headers
endif

comment:2 by mloskot, 7 years ago

Cc: mloskot added
Description: modified (diff)

comment:3 by mloskot, 7 years ago

Sandro, perhaps you could apply this patch, perhaps conditionally with prior test of

AC_CHECK_LIB(stdc++,main,,AC_MSG_ERROR(Building on OS X with clang requires libstdc++))

comment:4 by robe, 6 years ago

Milestone: 3.8.0

Is this still a problem? Pushing to 3.8 for now.

comment:5 by pramsey, 5 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.