Re: [Netatalk-devel] Help: Solaris7-compilation, netatalt-1.4.99 (20001107)


Subject: Re: [Netatalk-devel] Help: Solaris7-compilation, netatalt-1.4.99 (20001107)
From: James Devenish (j-devenish@users.sourceforge.net)
Date: Mon Nov 20 2000 - 10:02:54 EST


On Mon, Nov 20, 2000 at 02:26:35PM +0100, Wulf-Dirk.Leuschner@epidauros.com wrote:
> HELP! Is there anybody out there who has succeeded in compiling the
> netatalk-1.4.99 (20001107) version on a 32-bit Solaris 7 machine?

I had compilation success with Solaris 8 (but had runtime problems).

> I first got an error in 'Making all in uams' which could be fixed by using the
> gcc linker ('export LD=/usr/bin/gcc'). After that the same error occurred as
> with the last pre-release - seems, as if nobody has had time to fix this 'bug'?

Same issue for me, but then it crops up a lot in other packages too
(when building with Solaris, that is). Something you might like to do is
install newest versions of the auto* tools and binutils, which has helped
various compilations for me. Note that some GNU utilities bundled with
Solaris seem to be faulty---when asked for their version number, they
report the latest version, but their behaviour is broken. Maybe this is
because they are installed incomplete? I don't know. Just replace them
if that is appropriate on your system.

> >>>
> Making all in timelord

Ah...I skipped timelord because it wouldn't compile and I don't want it.
But here are some hints, which someone who has more knowledge might be
able to incorporate into the configure script. (I know timelord is
contrib software, but some problems affect netatalk core programmes
aswell.)

> make[3]: Entering directory `/opt/sources/netatalk/netatalk/contrib/timelord'
> gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../sys/generic -I../../sys/generic
> -g -O2 -I../../include -I../../sys -c timelord.c
> In file included from timelord.c:23:
> ../../sys/netatalk/endian.h:35: warning: redefinition of `int32_t'
> /usr/include/sys/int_types.h:69: warning: `int32_t' previously declared here
> timelord.c: In function `main':
> timelord.c:76: storage size of `sv' isn't known

>From what I can gather, sigvec is like sigaction except the structure
elements have names like sv_... instead of sa_... have a look in
signal.h

> timelord.c:83: `MAXHOSTNAMELEN' undeclared (first use in this function)
> timelord.c:83: (Each undeclared identifier is reported only once
> timelord.c:83: for each function it appears in.)

This crops up with afpd and papd (ie. this needs to be resolved). On
some systems this is 256, so I add CPPFLAGS='-DMAXHOSTNAMELEN=256' to
the environment in which configure runs (or maybe make's environment, I
can't remember). I don't know what header file this is expected to
appear in.

> timelord.c:125: `O_RDWR' undeclared (first use in this function)

#include <sys/fcntl.h>

> timelord.c:126: `TIOCNOTTY' undeclared (first use in this function)

On some systems, this is in <asm/ioctls.h>
In others, replace #include <sgtty.h> with #include <sys/termios.h>

> timelord.c:218: structure has no member named `tm_gmtoff'

The GNU headers seem to have this in time.h:
# ifdef __USE_BSD
  long int tm_gmtoff; /* Seconds east of UTC. */
  __const char *tm_zone; /* Timezone abbreviation. */
# else
  long int __tm_gmtoff; /* Seconds east of UTC. */
  __const char *__tm_zone; /* Timezone abbreviation. */
# endif

Whereas the ISO headers bundled with Solaris don't have this.

In summary: use a version of Mac OS with has "Use a Network Time
Server" in the "Date & Time" control panel (for your Macs) and some
variant of an NTP client&/daemon on your UNIX machines :)

-- 
James



This archive was generated by hypermail 2b28 : Wed Jan 17 2001 - 14:32:40 EST