while at that, some ifdef I can't imagine why they exist: #ifdef STDC_HEADERS # include <stdlib.h> # include <stddef.h> #else # ifdef HAVE_STDLIB_H # include <stdlib.h> # endif #endif
do we support systems where stdlib.h or similar are not supported?! O.o On Thu, Jan 3, 2013 at 12:34 PM, Gustavo Sverzut Barbieri < [email protected]> wrote: > 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 > -- 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
