Hi people,
I'm reviewing the checks in efl/configure.ac and some are quite weird,
which I want to remove if there is no valid reason for their existence.
IMO the way Evil, Escape and Exotic are done are a bit cumbersome for the
libraries to use. For instance, evil_libgen.h matches libgen.h, however the
user code must have the following:
#ifdef HAVE_LIBGEN_H
#include <libgen.h>
#endif
...
#ifdef HAVE_EVIL
#include <Evil.h> /* includes evil_libgen.h */
#endif
why not call evil_libgen.h just libgen.h and let the user include it
normally? We just -I$(top_srcdir)/src/lib/evil if building for Evil, then
it makes life simpler.
In my mind Evil.h and Exotic. doesn't even need to exist... they could
exist in some cases where the system file exists but lacks something.
Say libgen.h in PS3 lacked basename, then we could have:
* escape_libgen.h: basename() definition
* Escape.h: includes escape_libgen.h to match complete libgen.h
from posix, "fixing" the previous include.
Find below the suggested header and functions to change. I may get to this
next week and apply the changes.
== Headers ==
* strings.h: is very useful, very old and very standard. The only place
that checks for that is simple_xml_parser and I have no idea why :-P
PROPOSAL: remove checks and rely on strings.h. Portability layers
(escape, evil, exotic should provide it if missing).
* unistd.h: same as strings.h, portability layers already provide what we
use.
PROPOSAL: remove checks and rely on unistd.h. Portability layers
(escape, evil, exotic should provide it if missing).
* signal.h: very very old and supported on UNIX.
PROPOSAL: remove checks and rely on signal.h. Portability layers
(escape, evil, exotic should provide it if missing). Many times the
platform ports need to provide a completely new way to deal with signals
and this is done in a different file.
* siginfo.h and siginfo_t: checked by eina, used without check for years
in ecore_signal.c as it's not used in Windows, there we use another file.
PROPOSAL: remove checks and rely on siginfo.h and siginfo_t.
Portability layers (escape, evil, exotic should provide it if missing), as
the signals won't be emitted, it should cause no problems. Or it is done in
another file as said for signal.h
* inttypes.h and stdint.h (also included by inttypes): is very useful and
is posix. Many users in our efl do not check for HAVE_INTTYPES_H or
HAVE_STDINT_H, some check for _WIN32 or similar.
PROPOSAL: remove checks and rely on inttypes.h and stdint.h.
Portability layers (escape, evil, exotic should provide these if missing).
* errno.h: except from some parts of ecore_con (that does it wrong), it's
basically used in windows/evil. Evil does it right and wraps every errno
access in #ifdef, which is a pain.
PROPOSAL: remove checks and rely on errno.h. Portability layers
(escape, evil, exotic should provide it if missing).
* libgen.h: provides basename/dirname, but is only checked in
eio_private.h and eina_module.c, although it's used in many more places.
PROPOSAL: remove checks and rely on libgen.h. Portability layers
(escape, evil, exotic should provide it if missing). Evil/Escape already
provide it, but call the file PREFIX_libgen.h and is included by their
headers.
* langinfo.h and locale.h: posix 2001, just constants.
PROPOSAL: remove checks and rely on langinfo.h and locale.h.
Portability layers (escape, evil, exotic should provide it if missing).
* sys/time.h, sys/select.h and sys/resource.h: posix 2001.
PROPOSAL: remove checks and rely files. Portability layers (escape,
evil, exotic should provide it if missing).
* sys/socket.h, net/if.h, net/un.h, arpa/inet.h, arpa/nameser.h,
netinet/in.h: posix 2001. Does BSD/Solaris support them at the same
location??
PROPOSAL: remove checks and rely files. Portability layers (escape,
evil, exotic should provide it if missing) or provide native version of the
networking functions for ecore.
== Functions ==
* execvp: posix 2001
* fpathconf: posix 2001
* clearenv: rejected posix 2001, we should stop using it (just efreet
tests use it)
* lround: posix 2001
* sigaction: posix 2001
* siglongjmp: posix 2001
* isfinite: posix 2001
* clock_gettime: posix 2001
--
Gustavo Sverzut Barbieri
http://profusion.mobi embedded systems
--------------------------------------
MSN: [email protected]
Skype: gsbarbieri
Mobile: +55 (19) 9225-2202
------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122712
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel