forked from enlightenment/efl
A few days ago I was investigating a bug in the EFL WebKit port and noticed WebKit's and Evas' handling of Fontconfig are somewhat incompatible: while the evas_font code calls both FcInit() and FcFini() when on initialization and shutdown, respectively, WebKit keeps some Fontconfig objects alive until the process exits. In practice, this means that shutting Evas down will cause FcFini() to assert because there are objects which have not been properly destroyed. This is not really a WebKit-specific problem, as any program which also uses Fontconfig directly and shuts Evas down before destroying all FC resources it has allocated is going to crash in the same way. Other libraries such as Qt, Pango and Cairo do not explicitly initialize and shut Fontconfig down. Evas itself got this code in r40242 and was later adjusted in r45829 and r74870. Since we can't completely control the lifetime of all Fontconfig objects used in client code, I was thinking of doing the same thing as other libraries do and get rid of the calls to FcInit() and FcFini(). The part which is really important is not calling FcFini() -- this was already done for a while in the r45829 which I mentioned. Valgrind will complain about some "still reachable" memory blocks, but that's not really important (as raster said in that revision's commit message, "things may look like they leak in Valgrind - they dont. in reality"). Note: tasn tried to talk about it with fc guys and it's the way to go. They won't implemented refcount as suggested in our ml. Patch by: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> SVN revision: 83605 |
||
---|---|---|
data | ||
dbus-services | ||
doc | ||
licenses | ||
m4 | ||
old | ||
pc | ||
po | ||
spec | ||
src | ||
.gitignore | ||
AUTHORS | ||
COPYING | ||
ChangeLog | ||
Makefile.am | ||
NEWS | ||
README | ||
autogen.sh | ||
configure.ac |
README
EFL 1.7.99 ****************************************************************************** FOR ANY ISSUES PLEASE EMAIL: enlightenment-devel@lists.sourceforge.net ****************************************************************************** EFL is a collection of libraries for handling many common tasks a developer man have such as data structures, communication, rendering, widgets and more. VALGRIND DEPENDENCY: ------------------------------------------------------------------------------ EFL uses the concept of memory pools (mempool) and this will confuse valgrind memcheck tool. By using memory pool, the memory is still owned by EFL, then valgrind won't alert on memory leaks or use of unused memory. EFL will use memcheck.h from valgrind to declare its memory pools to valgrind, producing better debugging results. However valgrind is only available to limited platforms, making us hard to declare it a mandatory requirement. Based on --with-profile={dev,debug} valgrind will be used if available or will be issued a warning. You can force valgrind with --enable-valgrind, or disable it and the warning with --disable-valgrind. EFL does NOT link to valgrind libraries. Then there is NO runtime dependency on valgrind. BULLET PHYSICS DEPENDENCY: ------------------------------------------------------------------------------ EFL comes with EPhysics(a physics wrapper library) enabled by default, to build it the user must have BulletPhysics engine installed. More informations about BulletPhysics can be obtained in the upstream project web site at: http://bulletphysics.org. We have received many reports about BulletPhysics installation and distros packages in bad shape, some without even a package. If your distro doesn't ship a BulletPhysics package or you want to build it from source code follow the instructions below: * Required Packages: You should have cmake installed. Bullet comes with autotools and cmake build systems, do not use the autotools alternative, it's unstable, bogus and hasn't been maintained for quite some time. * Download the tarball from: http://code.google.com/p/bullet/downloads/list NOTE: the current supported version is 2.80 or greater. * Compiling and Installing: Uncompress it to(say) ~/bullet and: $ cd ~/bullet/build $ cmake .. -DBUILD_CPU_DEMOS=OFF -DBUILD_DEMOS=OFF -DBUILD_SHARED_LIBS=ON $ make $ sudo make install * Ubuntu Users: Alternatively ubuntu users have the option to install the BulletPhysics from our official EFL PPA: https://launchpad.net/~efl/+archive/trunk ------------------------------------------------------------------------------ COMPILING AND INSTALLING: ./configure make (do this as root unless you are installing in your users directories): make install EFL build is based on "profiles". It will default to "dev" for unreleased software and "release" for official tarballs. One can change it with --with-profile=NAME, where NAME is one of: * dev: extra checks useful to test software. * debug: superset of dev, with debug features and assert(). * release: optimizations and less checks so it runs faster. CRYPTOGRAPHIC SYSTEM: EFL officially uses "openssl" library to do signature, cipher and related. Alternatively one can use "gnutls" (some distros are strict about licenses and want gnutls instead of openssl) or disable it. One can change it with --with-crypto=NAME, where NAME is one of: "openssl", "gnutls" and "none".