[Vm-dev] Compiling Interpreter VM on FreeBSD

Frank Shearar frank.shearar at gmail.com
Wed Jan 2 19:22:42 UTC 2013


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