[Dovecot] dovecot-1.2.12 fails to build on Solaris 8 and 10

Dennis Clarke dclarke at blastwave.org
Mon Jul 5 00:44:06 EEST 2010


Further details from config.log :

|       #include <stdio.h>
|       #include <sys/types.h>
|       int main() {
|       FILE *f=fopen("conftestval", "w");
|       if (!f) exit(1);
|       fprintf(f, "%d\n", sizeof(off_t));
|       exit(0);
|       }
|
configure:18477: result: unknown
configure:18512: error: Unsupported off_t type

This is bogus however as that code compiles and runs just fine :

$ cat sizeof.c
/*
 * Main function
 */

/* Feature test switches */
#define _POSIX_SOURCE 1

/* System Headers */
#include <stdio.h>
#include <sys/types.h>
#include <time.h>
#include <stdlib.h>
#include <unistd.h>

/* Macros */

/* External function */

/*
 * print size of basic data types used in Solaris 8 upwards
 */

int main(int argc, char *argv[])
{
    printf ("\nC\n");
    printf ( "sizeof char = %d\n", sizeof (char));
    printf ( "sizeof double = %d\n", sizeof (double));
    printf ( "sizeof float = %d\n", sizeof (float));
    printf ( "sizeof int = %d\n", sizeof (int));
    printf ( "sizeof long = %d\n", sizeof (long));
    printf ( "sizeof long long = %d\n", sizeof (long long));
    printf ( "sizeof short = %d\n", sizeof (short));
    printf ( "sizeof void * = %d\n", sizeof (void *));
    printf ( "sizeof clock_t = %d\n", sizeof (clock_t));
    printf ( "sizeof gid_t = %d\n", sizeof (gid_t));
    printf ( "sizeof pid_t = %d\n", sizeof (pid_t));
    printf ( "sizeof size_t = %d\n", sizeof (size_t));
    printf ( "sizeof ssize_t = %d\n", sizeof (ssize_t));
    printf ( "sizeof time_t = %d\n", sizeof (time_t));
    printf ( "sizeof uid_t = %d\n", sizeof (uid_t));
    printf ( "sizeof \"\" = %d\n", sizeof (""));

    /* quick file test  */
    printf ( "\nWill attempt FILE *f=fopen(\"conftestval\", \"w\");\n\n" );
    FILE *f=fopen("conftestval", "w");
    if (!f)
        printf ( " * * * FAIL * * * \n" );
    else {
        printf ( "\nWill attempt to write sizeof(off_t) to FILE f\n" );
        fprintf( f, "%d\n", sizeof(off_t) );
    }

    printf( "sizeof off_t = %d\n", sizeof(off_t));
    return(0);
}

$ cat compile.sh
#!/bin/ksh
/usr/xpg4/bin/rm -rf /tmp/`uname -n`_`uname -p`_temp
mkdir /tmp/`uname -n`_`uname -p`_temp
/opt/studio/SOS11/SUNWspro/bin/cc -keeptmp -xtemp=/tmp/`uname -n`_`uname
-p`_temp -V -v -Xc -xstrconst -xildoff -xarch=386 -xlibmil -Kpic
-xlibmieee -xregs=no%frameptr -g -D_TS_ERRNO -H -\# -o sizeof sizeof.c

$ ./compile.sh
cc: Sun C 5.8 Patch 121016-08 2009/04/20
### Note: NLSPATH =
/opt/SUNWspro/prod/bin/../lib/locale/%L/LC_MESSAGES/%N.cat:/opt/SUNWspro/prod/bin/../../lib/locale/%L/LC_MESSAGES/%N.cat
### Note: TMPDIR = /tmp/titan_i386_temp
###     command line files and options (expanded):
### -D_TS_ERRNO -g -H -keeptmp -Kpic -V -v -Xc -xarch=386 -xlibmieee
-xlibmil -xregs=no%frameptr -xstrconst -xtemp=/tmp/titan_i386_temp
sizeof.c -o sizeof
/opt/SUNWspro/prod/bin/acomp -dg -xldscope=global -i sizeof.c -y-fbe
-y/opt/SUNWspro/prod/bin/fbe -y-pic -y-k -y-xarch=386 -y-td
-y/tmp/titan_i386_temp -y-g -y-o -ysizeof.o -y-verbose -y-il
-y/opt/SUNWspro/prod/lib/libm.il -y-xthreadvar=dynamic -y-comdat
-xdbggen=no%stabs+dwarf2+usedonly -V -v -strconst -D_TS_ERRNO -H
-xdbggen=incl -y-s -2k -fparam_ir -Qy -D__SunOS_5_8 -D__SUNPRO_C=0x580
-D__SVR4 -D__unix -D__sun -D__i386 -D__BUILTIN_VA_ARG_INCR
-D__C99FEATURES__ -Xc -D__PRAGMA_REDEFINE_EXTNAME -xc99=%all,no%lib
-D__FLT_EVAL_METHOD__=-1 -I/opt/SUNWspro/prod/include/cc
"-g/opt/SUNWspro/prod/bin/cc -keeptmp -xtemp=/tmp/titan_i386_temp -V -v
-Xc -xstrconst -xildoff -xarch=386 -xlibmil -Kpic -xlibmieee
-xregs=no%frameptr -g -D_TS_ERRNO -H -c " -fsimple=0 -destination_ir=yabe
acomp: Sun C 5.8 Patch 121016-08 2009/04/20
/usr/include/stdio.h
        /usr/include/iso/stdio_iso.h
                /usr/include/sys/feature_tests.h
                        /usr/include/sys/isa_defs.h
                /usr/include/sys/va_list.h
                /usr/include/stdio_tag.h
                /usr/include/stdio_impl.h
/usr/include/sys/types.h
        /usr/include/sys/machtypes.h
                /usr/include/ia32/sys/machtypes.h
        /usr/include/sys/int_types.h
/usr/include/time.h
        /usr/include/iso/time_iso.h
/usr/include/stdlib.h
        /usr/include/iso/stdlib_iso.h
/usr/include/unistd.h
        /usr/include/sys/unistd.h
/opt/SUNWspro/prod/bin/fbe -s -o sizeof.o -warn=%none -Qy
/tmp/titan_i386_temp/yabeAAAkoaqGj
### Note: LD_LIBRARY_PATH = <null>
### Note: LD_RUN_PATH = <null>
/usr/ccs/bin/ld /opt/SUNWspro/prod/lib/crti.o
/opt/SUNWspro/prod/lib/crt1.o /opt/SUNWspro/prod/lib/values-xi.o -o sizeof
-V sizeof.o -Y "P,/opt/SUNWspro/prod/lib:/usr/ccs/lib:/lib:/usr/lib" -Qy
-lc /opt/SUNWspro/prod/lib/crtn.o
ld: Software Generation Utilities - Solaris Link Editors: 5.8-1.302
$

$ ./sizeof

C
sizeof char = 1
sizeof double = 8
sizeof float = 4
sizeof int = 4
sizeof long = 4
sizeof long long = 8
sizeof short = 2
sizeof void * = 4
sizeof clock_t = 4
sizeof gid_t = 4
sizeof pid_t = 4
sizeof size_t = 4
sizeof ssize_t = 4
sizeof time_t = 4
sizeof uid_t = 4
sizeof "" = 1

Will attempt FILE *f=fopen("conftestval", "w");


Will attempt to write sizeof(off_t) to FILE f
sizeof off_t = 4
$

$ ls -lap
total 80
drwxr-xr-x   2 sysadmin sysadmin     277 Jul  4 21:43 ./
drwxrwxrwt   7 root     sys          538 Jul  4 21:42 ../
-rwx------   1 sysadmin sysadmin     311 Jul  4 21:33 compile.sh
-rw-r--r--   1 sysadmin sysadmin       2 Jul  4 21:42 conftestval
-rwxr-xr-x   1 sysadmin sysadmin    9424 Jul  4 21:42 sizeof
-rw-r--r--   1 sysadmin sysadmin    1626 Jul  4 21:41 sizeof.c
-rw-r--r--   1 sysadmin sysadmin    6152 Jul  4 21:42 sizeof.o

$ cat conftestval
4

So I'm at a loss why the dovecot configure script fails due to anything
regarding off_t.

-- 
Dennis Clarke
dclarke at opensolaris.ca  <- Email related to the open source Solaris



More information about the dovecot mailing list