Hi Gustavo,

from Solaris point of view all the headers and functions are there. The
only thing is that I filled some bugs with missing errno.h definition
in source file and than failing compilation. 

Otherwise ok.

Robert.


On Thu, 3 Jan 2013 12:34:43 -0200
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
> 
> 


------------------------------------------------------------------------------
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

Reply via email to