Re: [Tracker] Tracker on Solaris



Hi Martyn,

2013/1/24 Martyn Russell <martyn lanedo com>:
On 10/01/13 17:31, Frank Lahm wrote:
I succeeded in getting Tracker to build on Solaris 11, patches
attached in case anybody is interested. They are not really applicable
for upstream inclusion, but anybody facing the same task might
appreciate the pointers.

Looking at these patches, I wonder why you use 0002 to change
uuid_unparse_lower() to uuid_unparse()?

Solaris libuuid is missing uuid_unparse_lower, it was a simple hack^wfix. :)

Regarding the __EXTENSIONS__ part, what does that actually allow?

<http://docs.oracle.com/cd/E19253-01/816-5175/6mbba7f3l/index.html>

"Feature test macros are used by applications to indicate additional
sets of features that are desired beyond those specified by the C
standard. If an application uses only those interfaces and headers
defined by a particular standard (such as POSIX or X/Open CAE), then
it need only define the appropriate feature test macro specified by
that standard. If the application is using interfaces and headers not
defined by that standard, then in addition to defining the appropriate
standard feature test macro, it must also define __EXTENSIONS__.
Defining __EXTENSIONS__ provides the application with access to all
interfaces and headers not in conflict with the specified standard.
The application must define __EXTENSIONS__ either on the compile
command line or within the application source files."

On Linux,
it seems only useful for Python and MySQL. A quick Google search shows this
is needed perhaps for u_int and/or sys/types.h on Solaris - is this the
case? In any case, it seems to have little effect on Linux.

*BSD are also affected by this, requesting a UNIX compilation
environment will hide everything else not in the standard. On Linux
it's the other way around, you don't get certain functions (eg afair
pread()/pwrite()) without going into SUS. Blah! To solve this in
Netatalk we use this a header file which uses the results of platform
detection to define the right thing [tm]:

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__)
# ifndef _XOPEN_SOURCE
#  define _XOPEN_SOURCE 600
# endif
# ifndef __EXTENSIONS__
#  define __EXTENSIONS__
# endif
# ifndef _GNU_SOURCE
#  define _GNU_SOURCE
# endif
#endif

For the CPP linking issue, that will have to be a local patch for you I
think, unless there is a way to fix this otherwise. We do have a
--disable-meego-touch option, but I am guessing that doesn't help?

Missed that one, but no, doesn't help.

Patch 0001 was committed ;)

:)

-f



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]