John Goerzen wrote: > Hi Luk, > > Can you take a look at src/config.h after the failed build to figure out > which HAVE_XXX_OS is defined? Also, the definition of ioctl() in the > header files?
Sorry, the build environment is apparently not retained on the buildds. I think it's best to use a porter machine to get this information. Cheers Luk > ------------------------------------------------------------------------ > > Subject: > [bacula 0001359]: Doesn't compile on Alpha > From: > Mantis Bug Tracker <nob...@bugs.bacula.org> > Date: > Sat, 29 Aug 2009 15:35:51 +0100 > To: > jgoer...@complete.org > > To: > jgoer...@complete.org > > > A NOTE has been added to this issue. > ====================================================================== > http://bugs.bacula.org/view.php?id=1359 > ====================================================================== > Reported By: jgoerzen > Assigned To: > ====================================================================== > Project: bacula > Issue ID: 1359 > Category: Storage Daemon > Reproducibility: always > Severity: major > Priority: normal > Status: feedback > ====================================================================== > Date Submitted: 2009-08-28 22:52 BST > Last Modified: 2009-08-29 15:35 BST > ====================================================================== > Summary: Doesn't compile on Alpha > Description: > During the attempt to autobuild bacula 3 on Debian, this error was > reported: > > make[1]: Entering directory > `/build/buildd-bacula_3.0.2-3-alpha-1PG1hy/bacula-3.0.2/debian/tmp-build-sqlite3/src/stored' > Compiling dev.c > dev.c: In member function 'void DEVICE::init_backend()': > dev.c:307: error: invalid conversion from 'int (*)(int, long unsigned int, > ...)throw ()' to 'int (*)(int, int, ...)' > make[1]: *** [dev.o] Error 1 > make[1]: Leaving directory > `/build/buildd-bacula_3.0.2-3-alpha-1PG1hy/bacula-3.0.2/debian/tmp-build-sqlite3/src/stored' > make: *** [build-stamp-sqlite3] Error 2 > > The full error log is available at > https://buildd.debian.org/fetch.cgi?pkg=bacula;ver=3.0.2-3;arch=alpha;stamp=1251420917 > > The line of source in question is > > d_ioctl = ::ioctl; > > Version 2.4.4 successfully built on this platform. > ====================================================================== > > ---------------------------------------------------------------------- > (0004556) ebollengier (administrator) - 2009-08-29 07:47 > http://bugs.bacula.org/view.php?id=1359#c4556 > ---------------------------------------------------------------------- > We have a specific define for Alpha that maps ioctl argument to int. Does > it mean that it should be mapped to long unsigned int ? Or it's a different > architecture ? > > #ifdef __alpha__ > #define OSF 1 > #undef ioctl_req_t > #define ioctl_req_t int > #endif > > ---------------------------------------------------------------------- > (0004557) kern (administrator) - 2009-08-29 09:17 > http://bugs.bacula.org/view.php?id=1359#c4557 > ---------------------------------------------------------------------- > I don't understand why vendors don't simply follow the POSIX standard. > > Eric, for Alpha (and a few other that don't respect standards), the second > argument of an ioctl call is "unsigned int" rather than "int". > > The definition you show above should be: > > #define ioctl_req_t unsigned int > > However, who knows if it is going to break something somewhere else. > > ---------------------------------------------------------------------- > (0004562) jgoerzen (reporter) - 2009-08-29 14:59 > http://bugs.bacula.org/view.php?id=1359#c4562 > ---------------------------------------------------------------------- > It appears that your #ifdef __alpha__ is for HP Tru64 UNIX (previously > known as OSF/1) running on that platform. Linux also runs on that > platform, and may have different semantics. > > Kern, my reading of the error suggests that it should be > > #define ioctl_req_t long unsigned int > > but I may be missing something. > > ---------------------------------------------------------------------- > (0004563) jgoerzen (reporter) - 2009-08-29 15:02 > http://bugs.bacula.org/view.php?id=1359#c4563 > ---------------------------------------------------------------------- > I should clarify. It is invalid to infer what OS is being used from what > architecture is in use. You can't assume that an Alpha is running OSF/1, > as Debian, NetBSD, etc. all run on it as well. > > ---------------------------------------------------------------------- > (0004565) kern (administrator) - 2009-08-29 15:28 > http://bugs.bacula.org/view.php?id=1359#c4565 > ---------------------------------------------------------------------- > Well, when we are compiling Bacula, we *must* know what OS is running. > Perhaps it was a mistake for the author to use __alpha__ rather than the > OS. This code was submitted by a user, so I don't exactly know what > OS/platform it was for. > > Perhaps if you have the system in front of you, you can figure out what > the correct #ifdefing should be. In general, it should be something like: > > #ifdef HAVE_xxx_OS > ... > ... > #endif > > I suspect that we should leave the current __alpha__ #ifdefing alone and > just add a new one for your case after it. > > What is actually used for ioctl_req_t varies a bit, but yes, you are right > in the case of the error you were seeing (and for most of the silly > non-POSIX compatible OSes) it should be: > > #define ioctl_req_t unsigned long > > For the system in question, I suggest you look in the system header files > for what is really defined rather than relying on the output from g++. > > ---------------------------------------------------------------------- > (0004568) kern (administrator) - 2009-08-29 15:35 > http://bugs.bacula.org/view.php?id=1359#c4568 > ---------------------------------------------------------------------- > I forgot to mention that you can look in <bacula>/src/config.h after > running ./configure to know which HAVE_XXX_OS is defined. > > Issue History > Date Modified Username Field Change > ====================================================================== > 2009-08-28 22:52 jgoerzen New Issue > 2009-08-29 07:47 ebollengier Note Added: 0004556 > 2009-08-29 07:47 ebollengier Status new => feedback > 2009-08-29 09:17 kern Note Added: 0004557 > 2009-08-29 14:59 jgoerzen Note Added: 0004562 > 2009-08-29 15:02 jgoerzen Note Added: 0004563 > 2009-08-29 15:28 kern Note Added: 0004565 > 2009-08-29 15:35 kern Note Added: 0004568 > ====================================================================== > > -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org