Overview
Features
Download
Documentation
Community
Add-Ons & Services

Updates for successful POCO 1.5.2 build on FreeBSD 9.1

Please post support and help requests here.

Updates for successful POCO 1.5.2 build on FreeBSD 9.1

Postby jthomas » 19 Sep 2013, 21:50

I built POCO 1.5.2 for FreeBSD 9.1 today, and encountered a few minor build issues.

Please find my build notes below if you would like to update the master source to eliminate the issues.

Thanks for POCO on FreeBSD, and thanks for adding JSON and MongoDB support.

Jim

Using FreeBSD 9.1:

[jthomas@pangaea ~]$ uname -orm
FreeBSD 9.1-RELEASE i386

Cloned the POCO project:

[jthomas@pangaea ~/work/git]$ git clone https://github.com/pocoproject/poco.git

Inspected the version:

[jthomas@pangaea ~/work/git/poco]$ git describe
poco-1.5.2-release

Configured the build:

[jthomas@pangaea ~/work/git/poco]$ ./configure --config=FreeBSD --prefix=/opt/poco --omit=Data/MySQL,Data/ODBC
Configured for FreeBSD

Ran the build:

[jthomas@pangaea ~/work/git/poco]$ gmake -s
<snip>
** Compiling src/sqlite3.c (debug, shared)
src/sqlite3.c:23527: error: 'fchmod' undeclared here (not in a function)
gmake[1]: *** [/home/jthomas/work/git/poco/usr/home/jthomas/work
/git/poco/Data/SQLite/obj/FreeBSD/i386/debug_shared/sqlite3.o] Error 1
gmake: *** [Data/SQLite-libexec] Error 2

Added to /home/jthomas/work/git/poco/Data/SQLite/src/sqlite3.c at line 23,445:

/* Workaround for POCO build error on FreeBSD 9.1 */
/* error: 'fchmod' undeclared here (not in a function) */
int fchmod(int, mode_t);

Restarted the build:

[jthomas@pangaea ~/work/git/poco]$ gmake -s
<snip>
** Compiling src/StringTest.cpp (debug, shared)
src/StringTest.cpp:945: error: integer constant is too large for 'long' type
src/StringTest.cpp:946: error: integer constant is too large for 'long' type
src/StringTest.cpp:948: error: integer constant is too large for 'long' type
src/StringTest.cpp:977: error: integer constant is too large for 'long' type
src/StringTest.cpp:982: error: integer constant is too large for 'long' type
src/StringTest.cpp:984: error: integer constant is too large for 'long' type

Added 'ULL' suffix to the line numbers above and grepped the result:

[jthomas@pangaea ~/work/git/poco/Foundation/testsuite/src]$ grep ULL StringTest.cpp
assert (uIntToStr(0xFFFFFFFFFFFFFFFFULL, 2, result));
std::cout << 0xFFFFFFFFFFFFFFFFULL << std::endl;
assert (uIntToStr(0xFF00000FF00000FFULL, 2, result));
assert (uIntToStr(0x1234567890ABCDEFULL, 0x10, result, true));
assert (uIntToStr(0xFFFFFFFFFFFFFFFFULL, 0x10, result));
assert (uIntToStr(0xFFFFFFFFFFFFFFFFULL, 0x10, result, true));

Restarted the build:

[jthomas@pangaea ~/work/git/poco]$ gmake -s
<snip>
** Compiling src/JSONTest.cpp (debug, shared)
src/JSONTest.cpp:292: error: integer constant is too large for 'long' type
src/JSONTest.cpp:298: error: integer constant is too large for 'long' type
src/JSONTest.cpp:300: error: integer constant is too large for 'long' type
src/JSONTest.cpp:306: error: integer constant is too large for 'long' type
src/JSONTest.cpp:308: error: integer constant is too large for 'long' type

Added 'ULL' suffix to the line numbers above and grepped the result:

[jthomas@pangaea ~/work/git/poco/JSON/testsuite/src]$ grep ULL JSONTest.cpp
assert(value == -5000000000000000ULL);
assert (ds["test"] == -5000000000000000ULL);
assert(value == -5000000000000000ULL);
assert (rds["test"] == -5000000000000000ULL);
assert(value == -5000000000000000ULL);

Restarted the build:

[jthomas@pangaea ~/work/git/poco]$ gmake -s

The POCO build completed successfully.
jthomas
 
Posts: 7
Joined: 27 Mar 2008, 00:53

Return to Support

Who is online

Users browsing this forum: No registered users and 4 guests