[Vm-dev] Compiling Interpreter VM on FreeBSD

David T. Lewis lewis at mail.msen.com
Wed Jan 2 19:40:58 UTC 2013


This is recurring annoyance. I think we have a Mantis entry on it, I'll
take a look when I get a chance. The basic problem is that various unices
have header files for libuuid located in different places. I thought we
finally had this all sorted out in the cmake configuration process, but
apparently not :-/

Dave

On Wed, Jan 02, 2013 at 07:22:42PM +0000, Frank Shearar wrote:
>  
> I'm setting up more CI jobs, this time to give FreeBSD some love. So I
> have a script that gets the bleeding edge Interpreter source, cd
> platform/unix; make. The results are here:
> http://squeakci.org/job/InterpreterVM-FreeBSD/13/console
> 
> The punchline is that compilation fails thusly:
> 
> In file included from
> /usr/home/frank/temp/jenkins/workspace/InterpreterVM-FreeBSD/target/Squeak-vm-unix-4.10.7-2646-unofficial-src/platforms/unix/plugins/UUIDPlugin/sqUnixUUID.c:9:
> /usr/local/include/uuid/uuid.h:44: error: conflicting types for 'uuid_t'
> /usr/include/sys/uuid.h:74: error: previous declaration of 'uuid_t' was here
> /usr/home/frank/temp/jenkins/workspace/InterpreterVM-FreeBSD/target/Squeak-vm-unix-4.10.7-2646-unofficial-src/platforms/unix/plugins/UUIDPlugin/sqUnixUUID.c:
> In function 'MakeUUID':
> /usr/home/frank/temp/jenkins/workspace/InterpreterVM-FreeBSD/target/Squeak-vm-unix-4.10.7-2646-unofficial-src/platforms/unix/plugins/UUIDPlugin/sqUnixUUID.c:29:
> warning: passing argument 1 of 'uuidgen' from incompatible pointer
> 
> The relevant source is here:
> 
> 
> int MakeUUID(char *location)
> {
> #if defined(HAVE_UUID_CREATE) && !defined(HAVE_UUIDGEN) &&
> !defined(HAVE_UUID_GENERATE)
>   size_t  len= 16;      /* 128 bits */
>   uuid_t *uuid;
>   uuid_create(&uuid);
>   uuid_make(uuid, UUID_MAKE_V1);
>   uuid_export(uuid, UUID_FMT_BIN, (void **)&location, &len);
>   uuid_destroy(uuid);
> #else
>   uuid_t uuid;
> #  if defined(HAVE_UUIDGEN)
>   uuidgen(&uuid, 1);   // <-- this is line 29, the offender
> #  elif defined(HAVE_UUID_GENERATE)
>   uuid_generate(uuid);
> #  endif
>   memcpy((void *)location, (void *)&uuid, sizeof(uuid));
> #endif
>   return 1;
> }
> 
> Any ideas? I'm happy to do legwork, but Bozhe moi! This I know from nothing!
> 
> frank


More information about the Vm-dev mailing list