[haiku-commits] Re: BRANCH mmadia-github.separate-build-environment - headers/build/posix_target

  • From: "Ingo Weinhold" <ingo_weinhold@xxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 06 Aug 2012 15:52:40 +0200

Matt Madia wrote:
> On 8/6/12, Ingo Weinhold <ingo_weinhold@xxxxxx> wrote:
> > On 2012-08-06 at 03:49:36 [+0200], mmadia-github.separate-build-environment
> >
> > <community@xxxxxxxxxxxx> wrote:
> > [...]
> >> +/* special timezone support */
> >> +extern char *_haiku_build_tzname[2];
> >> +extern int _haiku_build_daylight;
> >> +extern long _haiku_build_timezone;
> >
> > Those are variables, so you need to use _HAIKU_BUILD_DECLARE_CONSTANT
> > (which should be renamed to *_VARIABLE, since there apparently also are
> > non-constant variables). You'll even need an *_ETC version for the array.
> 
> Will do.
> 
> Is this how _HAIKU_BUID_DECLARE_VARIABLE_ETC should be implemented?
> 
> #ifdef _HAIKU_BUILD_LIBROOT_FUNCTION_WRAPPER
> # define _HAIKU_BUILD_DECLARE_VARIABLE_ETC(type, name, length) \
> extern type _haiku_build_##name[length];
> #else
> # define _HAIKU_BUILD_DECLARE_VARIABLE_ETC(type, name, length) \
> extern type _haiku_build_##name[length]; \
> extern type name[length] \
> __asm__(_HAIKU_BUILD_ASMNAME("_haiku_build_" #name));
> #endif

That works for one-dimensional arrays. Alternatively you could define

# define _HAIKU_BUILD_DECLARE_VARIABLE_ETC(type, name, etc) \
 extern type _haiku_build_##name etc;
 ...

which would support anything after the name.

CU, Ingo

Other related posts: