On Tue, Oct 10, 2006 at 09:13:50AM +0200, Dr. Volker Jaenisch wrote:
> You're right. But I just wanted to show the difference and NOT provide a
> patch.
Actually my main point was to ease readability ("patch" more or less
accepts any format anyway).
> I state again: This is experimetal to the max and not intended to be a
> patch before some of the developers accept it.
> >Thanks again for trying carob on 64bits.
> >
> Bad news. "make test" fails with my changes applied.
Thanks for the report. This looks like this is the same issue again: I
think we should have only [u]int[32|64]_t conversion functions like
this, removing all the variable size types (in practice: long and long
long).
> 40-Parameter-PreparedStatement/TestParameterStatement.o
> 40-Parameter-PreparedStatement/TestParameterStatement.cpp
> 40-Parameter-PreparedStatement/TestParameterStatement.cpp: In member
> function 'void TestParameterStatement::testBigDecimal()':
> 40-Parameter-PreparedStatement/TestParameterStatement.cpp:294: error:
> call of overloaded 'BigDecimal(long long int)' is ambiguous
> ../include/BigDecimal.hpp:103: note: candidates are:
> CarobNS::BigDecimal::BigDecimal(const CarobNS::BigDecimal&)
> ../include/BigDecimal.hpp:94: note:
> CarobNS::BigDecimal::BigDecimal(long int)
> ../include/BigDecimal.hpp:90: note:
> CarobNS::BigDecimal::BigDecimal(int)
> ../include/BigDecimal.hpp:86: note:
> CarobNS::BigDecimal::BigDecimal(const std::string&) <near match>
> ../include/BigDecimal.hpp:77: note:
> CarobNS::BigDecimal::BigDecimal(const std::wstring&) <near match>
> 40-Parameter-PreparedStatement/TestParameterStatement.cpp:295: error:
> call of overloaded 'BigDecimal(long long int)' is ambiguous
> ../include/BigDecimal.hpp:103: note: candidates are:
>
> Will try to comment out "long" instead of "int64_t". Keep you informed -
> stay tuned!
Thanks again.
> >PS: is the makefile change required?
> >
> Yes they are to prevent the following at linking time:
>
> ...
> g++ src/Common.o src/JavaSocket.o src/DriverSocket.o
> src/CarobException.o src/ConnectionParameters.o src/ControllerPinger.o
> src/ControllerPool.o src/Connection.o src/Request.o
> src/RequestWithResultSetParameters.o src/ResultSetMetaData.o
> src/DriverResultSet.o src/Field.o src/Statement.o
> src/ParameterStatement.o src/BigDecimal.o src/SQLDataSerialization.o
> src/StringCodecs.o -lpthread -fPIC -shared -lgmp -o libcarob.so.1
> /usr/bin/ld: src/Common.o: relocation R_X86_64_32 against `a local
> symbol' can not be used when making a shared object; recompile with -fPIC
> src/Common.o: could not read symbols: Bad value
> collect2: ld returned 1 exit status
> make: *** [libcarob.so.1] Fehler 1
>
> I have no clue at all what "-fPIC" does. Just tried the same people in
> other cases (found via google) did to prevent this error.
info gcc
`-fpic'
Generate position-independent code (PIC) suitable for use in a
shared library, if supported for the target machine. Such code
accesses all constant addresses through a global offset table
(GOT). The dynamic loader resolves the GOT entries when the
program starts (the dynamic loader is not part of GCC; it is part
of the operating system). If the GOT size for the linked
executable exceeds a machine-specific maximum size, you get an
error message from the linker indicating that `-fpic' does not
work; in that case, recompile with `-fPIC' instead.
_______________________________________________
Carob mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/carob