Go to file
André Draszik 54777d7f18 fp: support environments without hardware floating point
| cd <build>/Foundation && \
|    mipsel-poky-linux-musl-g++   -DFoundation_EXPORTS -DHAVE_PTHREAD_SETAFFINITY_NP -DHAVE_THREE_PARAM_SCHED_SETAFFINITY \
|         -DPCRE_STATIC -DPOCO_HAVE_FD_EPOLL -DPOCO_NO_AUTOMATIC_LIBS -DPOCO_OS_FAMILY_UNIX -DPOCO_UNBUNDLED \
|         -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_REENTRANT -D_THREAD_SAFE -D_XOPEN_SOURCE=500 \
|         -I<sysroot>/usr/include -I<poco>/Foundation/include -I<poco>/Foundation/src  \
|         -mel -mabi=32 -msoft-float -march=mips32r2 -mno-mips16  -minterlink-compressed -mtune=24kec -mdsp  \
|         --sysroot=<sysroot> -O2 -pipe -g -feliminate-unused-debug-types \
|         -fstack-protector-strong -pie -fpie -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security \
|         -fvisibility-inlines-hidden  -mel -mabi=32 -msoft-float -march=mips32r2 -mno-mips16  -minterlink-compressed \
|         -mtune=24kec -mdsp  --sysroot=<sysroot> -O2 -g -DNDEBUG -fPIC   \
|         -o CMakeFiles/Foundation.dir/src/ArchiveStrategy.cpp.o \
|         -c <poco>/Foundation/src/ArchiveStrategy.cpp
| In file included from <poco>/Foundation/include/Poco/FPEnvironment.h:33:0,
|                  from <poco>/Foundation/include/Poco/NumericString.h:25,
|                  from <poco>/Foundation/include/Poco/NumberFormatter.h:24,
|                  from <poco>/Foundation/include/Poco/ArchiveStrategy.h:27,
|                  from <poco>/Foundation/src/ArchiveStrategy.cpp:17:
| <poco>/Foundation/include/Poco/FPEnvironment_C99.h:36:30: error: 'FE_DOWNWARD' was not declared in this scope
|    FP_ROUND_DOWNWARD_IMPL   = FE_DOWNWARD,
|                               ^~~~~~~~~~~
| <poco>/Foundation/include/Poco/FPEnvironment_C99.h:37:30: error: 'FE_UPWARD' was not declared in this scope
|    FP_ROUND_UPWARD_IMPL     = FE_UPWARD,
|                               ^~~~~~~~~
| <poco>/Foundation/include/Poco/FPEnvironment_C99.h:39:30: error: 'FE_TOWARDZERO' was not declared in this scope
|    FP_ROUND_TOWARDZERO_IMPL = FE_TOWARDZERO
|                               ^~~~~~~~~~~~~
| <poco>/Foundation/include/Poco/FPEnvironment_C99.h:43:28: error: 'FE_DIVBYZERO' was not declared in this scope
|    FP_DIVIDE_BY_ZERO_IMPL = FE_DIVBYZERO,
|                             ^~~~~~~~~~~~
| <poco>/Foundation/include/Poco/FPEnvironment_C99.h:44:28: error: 'FE_INEXACT' was not declared in this scope
|    FP_INEXACT_IMPL        = FE_INEXACT,
|                             ^~~~~~~~~~
| <poco>/Foundation/include/Poco/FPEnvironment_C99.h:45:28: error: 'FE_OVERFLOW' was not declared in this scope
|    FP_OVERFLOW_IMPL       = FE_OVERFLOW,
|                             ^~~~~~~~~~~
| <poco>/Foundation/include/Poco/FPEnvironment_C99.h:46:28: error: 'FE_UNDERFLOW' was not declared in this scope
|    FP_UNDERFLOW_IMPL      = FE_UNDERFLOW,
|                             ^~~~~~~~~~~~
| <poco>/Foundation/include/Poco/FPEnvironment_C99.h:47:28: error: 'FE_INVALID' was not declared in this scope
|    FP_INVALID_IMPL        = FE_INVALID
|                             ^~~~~~~~~~

The reason is that some (notably FPU-less) architectures,
including mips*-nf, don't define/implement some of the
floating point constants, even though fenv.h is
available.

The key point is:
  A fully standards conforming fenv.h does not have to
  define any FE_* macros, and if it does define them,
  then it defines macros only for the FP exceptions it
  actually supports.

See similar issue in boost:
  https://svn.boost.org/trac/boost/ticket/11756
2017-03-22 11:10:28 +00:00
ApacheConnector added Visual Studio 2017 project files 2017-02-20 16:46:44 +01:00
appveyor Restore POCO_BASE 2016-03-28 11:38:46 +02:00
biicode removing POCO_OS_* declarations from cmake and biicode configuration 2015-10-12 20:53:29 -04:00
build fix makedepend scripts 2017-03-11 18:06:44 +01:00
cmake Fixed wrong casing on the CMake script 2016-03-07 16:36:39 -03:00
contrib Moved contributed CMake modules to "cmake" folder 2012-12-16 00:40:40 -02:00
CppParser added Visual Studio 2017 project files 2017-02-20 16:46:44 +01:00
CppUnit added Visual Studio 2017 project files 2017-02-20 16:46:44 +01:00
Crypto added Visual Studio 2017 project files 2017-02-20 16:46:44 +01:00
Data added Visual Studio 2017 project files 2017-02-20 16:46:44 +01:00
doc Fix typo. 2015-12-13 12:37:49 +01:00
Foundation fp: support environments without hardware floating point 2017-03-22 11:10:28 +00:00
JSON added Visual Studio 2017 project files 2017-02-20 16:46:44 +01:00
MongoDB added Visual Studio 2017 project files 2017-02-20 16:46:44 +01:00
Net Fix always true condition, possible out-of-bounds 2017-02-22 13:09:32 -08:00
NetSSL_OpenSSL Rollback fix #1605 since it breaks the unit test 2017-03-15 18:23:37 +01:00
NetSSL_Win added Visual Studio 2017 project files 2017-02-20 16:46:44 +01:00
openssl fix openssl deps build script 2015-12-12 19:41:28 -06:00
PageCompiler added Visual Studio 2017 project files 2017-02-20 16:46:44 +01:00
patches/AIX new trunk (base for 1.5) 2012-04-23 01:14:34 +00:00
PDF added Visual Studio 2017 project files 2017-02-20 16:46:44 +01:00
PocoDoc Update excluded includes to run successfully "mkdoc all" 2017-03-20 21:05:18 +01:00
ProGen added Visual Studio 2017 project files 2017-02-20 16:46:44 +01:00
Redis Update Type.h 2017-03-08 16:19:29 +08:00
release Update mkrelease with CppUnit as a Poco component. 2016-03-23 15:23:31 +01:00
SevenZip added Visual Studio 2017 project files 2017-02-20 16:46:44 +01:00
travis Exclude Data/MySQL. 2016-03-12 11:59:10 +01:00
Util Update SystemConfiguration size. 2017-03-12 13:49:31 +01:00
XML added Visual Studio 2017 project files 2017-02-20 16:46:44 +01:00
Zip Add Zip_API to Poco::Zip::ZipUtil class in order to export the static 2017-03-12 09:28:03 +01:00
.gitattributes updated .gitattributes linguist settings 2016-09-21 08:31:23 +02:00
.gitignore Add *.opendb file generated by VS2015 Community Edition. 2016-01-21 04:30:25 +01:00
.travis.yml Run tests only if compile/link/install are ok. 2016-07-20 11:36:57 +02:00
appveyor.yml Cygwin: add downloading of libpcre-devel 2017-02-12 15:50:40 +01:00
build_CE_vs90.cmd new trunk (base for 1.5) 2012-04-23 01:14:34 +00:00
build_cmake.cmd Updated to run on Windows. 2015-12-08 11:35:09 +01:00
build_cmake.sh Restore 755 on shell 2016-03-09 11:38:41 +01:00
build_vcexpress2008.cmd "tests" are missing in build_vcexpress.cmd 2013-02-25 20:04:58 +09:00
build_vcexpress2010.cmd "tests" are missing in build_vcexpress.cmd 2013-02-25 20:04:58 +09:00
build_vs90.cmd some last minute changes 2012-12-26 18:30:52 -06:00
build_vs100.cmd some last minute changes 2012-12-26 18:30:52 -06:00
build_vs110.cmd some last minute changes 2012-12-26 18:30:52 -06:00
build_vs120.cmd added build_vs120.cmd (for consistency) 2014-12-15 11:12:01 +01:00
build_vs140.cmd updated build scripts for VS2015 2015-07-30 15:54:43 +02:00
build_vs150.cmd modified build scripts for vs150 2017-02-20 16:55:18 +01:00
build_wdexpress2012.cmd Support Visual Studio Express 2012 for Windows Desktop 2013-02-25 20:04:32 +09:00
build_wdexpress2013.cmd new build command for VS2013 Express Edition. 2014-09-07 11:42:12 +02:00
buildwin.cmd Use proper x86_amd64 for build of x64 architecture 2017-03-17 16:48:58 +01:00
buildwin.ps1 modified build scripts for vs150 2017-02-20 16:55:18 +01:00
CHANGELOG updated CHANGELOG; CMake fixes for OS X; doc updates; release script improvements 2014-12-22 00:06:53 +01:00
CMakeLists.txt enable CppUnit with ENABLE_CPPUNIT 2016-11-18 17:17:19 +01:00
components Move the FSM feature from the develop branch to the feature-fsm branch 2016-08-14 10:53:09 +02:00
configure fixed GH #1537: Need to add multiple cflags parameters to configure 2017-01-10 17:14:42 +01:00
CONTRIBUTING.md Update CONTRIBUTING.md 2016-09-13 07:15:12 +02:00
CONTRIBUTORS Update CONTRIBUTORS 2016-02-28 15:27:37 -06:00
DLLVersion.rc bumped version of develop to 2.0 2016-03-07 06:57:52 +01:00
env.sh re-added MongoDB, improved buildwin and release scripts 2013-07-23 15:04:48 +02:00
FAQ.md Update FAQ.md 2015-05-18 20:50:10 -05:00
libversion bumped version of develop to 2.0 2016-03-07 06:57:52 +01:00
LICENSE LICENSE: add info about SPDX-License-Identifier usage and use it 2014-05-14 08:38:09 +02:00
Makefile remove FSM references from Makefile 2017-02-22 21:42:23 +01:00
NEWS new trunk (base for 1.5) 2012-04-23 01:14:34 +00:00
README add separation line for BUILDING FOR WINDOWS CE. 2015-08-24 11:28:12 +02:00
README.md Update README.md 2016-09-13 07:45:35 +02:00
VERSION bumped version of develop to 2.0 2016-03-07 06:57:52 +01:00

POCO C++ Libraries

Build Status

  • Travis: Travis Build Status
  • AppVeyor: AppVeyor Build Status
  • CII Best Practices

alt text

POrtable COmponents C++ Libraries are:

  • A collection of C++ class libraries, conceptually similar to the Java Class Library, the .NET Framework or Apples Cocoa.
  • Focused on solutions to frequently-encountered practical problems.
  • Focused on internet-age network-centric applications.
  • Written in efficient, modern, 100% ANSI/ISO Standard C++.
  • Based on and complementing the C++ Standard Library/STL.
  • Highly portable and available on many different platforms.
  • Open Source, licensed under the Boost Software License.

To start using POCO, see the Guided Tour and Getting Started documents.


POCO has an active user and contributing community, please visit our web site, forum and blog. Answers to POCO-related questions can also be found on Stack Overflow.

Please see CONTRIBUTING for submitting contributions, bugs reports, feature requests or security issues.


In regards to Boost, in spite of some functional overlapping, POCO is best thought of as a Boost complement (rather than replacement). Side-by-side use of Boost and POCO is a very common occurrence.

When contributing to POCO, please adhere to our guidelines.

All text file line endings in the repository must be Unix-style (LF). This includes Visual Studio project and solution files (.sln, .vcproj, .vcxproj, .vcxproj.filters).