17 Sep
2015
17 Sep
'15
3:17 a.m.
thank you guys for your answers. > But leaving that aside I suggest you start with PR's for Config and Build - which would enable some level of testing to proceed - and then proceed with patches for other libraries from there. okay, I will start with this. so do I right understand that general strategy is to devide large patch into several small patches, each one for corresponding boost sub-module, and get them reviewed/approved/marged separately? > One wrinkle - I notice that Boost.Test is listed as unsupported, but without that you won't actually be able to run meaningful tests - how much work would it be to get that supported? I suppose this shouldn't be a big deal getting Boost.Test built for NaCl, probably 1 or 2 days. currently I have 3 kinds of compiler errors for Boost.Test: [exec] libs/timer/src/cpu_timer.cpp:103: error: ‘_SC_CLK_TCK’ was not declared in this scope NaCl defines _SC_CLK_TCK in its sys/unistd.h, but boost doesn't see it for some reason. [exec] ./boost/test/execution_monitor.hpp:492: error: ‘FE_DIVBYZERO’ was not declared in this scope [exec] ./boost/test/execution_monitor.hpp:493: error: ‘FE_INEXACT’ was not declared in this scope and many similar errors for FE_* constants (I see them as part of C++11 according to www.cplusplus.com/reference/cfenv/FE_DIVBYZERO/). for some reason at least one NaCl tool-chain (newlib) doesn't define mentioned constants. I need to investigate more purpose of that constants and how to properly deal with them in NaCl. [exec] ./boost/test/impl/debug.ipp:897: error: ‘::select’ has not been declared that's one weird thing in NaCl - it doesn't define select in its headers (at least for newlib), but it's available in nacl_io static library like most BSD sockets functions (altought other functions like recv/send/etc are defined in headers). in my code and multiple other ports (e.g. GLib) I've solved that by adding forward declaration of select prototype specially for NaCl. that's all kind of errors with Boost.Test. other libraries have their own issues. please also note that NaCl provides multiple tool-chains: - nacl arm newlib - nacl x86 newlib (can build x86 and x64 binaries) - nacl x86 glibc (can build x86 and x64 binaries) - pnacl so technically there are at least 6 different build configurations for NaCl, each of them has its own headers with different portability issues and limitations. I am currently building ofr nacl x86 newlib and verifying boost patches on it. however, I can also ensure patches works for the rest configurations (I think it will make sense for other people). > Is there an easy way to have a working NaCl environment to build and execute boost tests? That would certainly help a lot. that depends on which way is most comfortable for you? for example I can suggest the following: - I can make Virtual Box image with NaCl environment build set up and share - I also can prepare docker container - I can write puppet module which will install all necessary stuff - I can share my own build environment with you and boost community and provide SSH access to it - if you prefer to installing environment on your own, you can just follow instructions on https://developer.chrome.com/native-client/sdk/download let me know which way is the most comfortable for you and I will take necessary actions to prepare build environment. 2015-09-16 22:48 GMT+06:00 Ion Gaztañaga: > On 16/09/2015 15:41, Konstantin Ivlev wrote: > >> Hi boost community, >> >> some introdution: >> NaCl (Google NativeClient, https://developer.chrome.com/native-client) - >> open-source technology authored by Google Inc. providing way to run native >> code inside web-browser in portable and secure manner. NaCl provides >> posix-like environment, and supports newlib and glibc standard libraries. >> currently NaCl is supported by Google Chrome web-browser, and range of >> applications and software libraries are ported to NaCl (include zlib, >> quake, etc.). >> >> how about integrating NaCl support patches into the boost main-line >> (trunk/master), I am talking about these NaCl ports patches from Google: >> > > Is there an easy way to have a working NaCl environment to build and > execute boost tests? That would certainly help a lot. > > Ion > > > _______________________________________________ > Unsubscribe & other changes: > http://lists.boost.org/mailman/listinfo.cgi/boost >