libksba-1.0.5 and OSF/1 Alpha: how to make the build succeed

Nelson H. F. Beebe beebe at math.utah.edu
Wed Jan 14 01:20:27 CET 2009


A build attempt for libksba-1.0.5 on OSF/1 Alpha failed with
compilation errors in assuan-uds.c:

	cc -std -DHAVE_CONFIG_H -I. -I.. -I.. -I../include -ieee -I/usr/local/include -c assuan-uds.c
	cc: Error: assuan-uds.c, line 105: In this statement, "msg_control" is not a
	member of "msg". (needmember)
	      msg.msg_control = control_u.control;
	------^
	cc: Error: assuan-uds.c, line 106: In this statement, "msg_controllen" is not
	a member of "msg". (needmember)
	      msg.msg_controllen = sizeof (control_u.control);
	------^
	cc: Error: assuan-uds.c, line 119: In this statement, "msg_control" is not a
	member of "(&msg)". (needmember)
	      cmptr = CMSG_FIRSTHDR (&msg);
	--------------^
	cc: Error: assuan-uds.c, line 223: In this statement, "msg_control" is not a
	member of "msg". (needmember)
	  msg.msg_control = control_u.control;
	--^
	cc: Error: assuan-uds.c, line 224: In this statement, "msg_controllen" is not
	a member of "msg". (needmember)
	  msg.msg_controllen = sizeof (control_u.control);
	--^
	cc: Error: assuan-uds.c, line 225: In this statement, "msg_control" is not a
	member of "(&msg)". (needmember)
	  cmptr = CMSG_FIRSTHDR (&msg);
	----------^

Examination of the <sys/socket.h> header file shows that these struct
members DO exist, but only if _XOPEN_SOURCE_EXTENDED is defined at
compile time.

I restarted the build with

	make CC='cc -std -D_XOPEN_SOURCE_EXTENDED'

This time, it got further, but died at

	cc -std -D_XOPEN_SOURCE_EXTENDED -DHAVE_CONFIG_H -I. -I.. -I.. -I../include  
	 -ieee -I/usr/local/include -c assuan-io.c
	cc: Error: assuan-io.c, line 225: In this declaration, "req" has no linkage
	and is of an incomplete type. (incompnolink)
	  struct timespec req;
	------------------^
	cc: Error: assuan-io.c, line 226: In this declaration, "rem" has no linkage
	and is of an incomplete type. (incompnolink)
	  struct timespec rem;
	------------------^

A search of <sys/time.h> showed that struct timespec is exposed if
_POSIX_C_SOURCE >= 199309L, so another restart with

	make CC='cc -std -D_XOPEN_SOURCE_EXTENDED -D_POSIX_C_SOURCE=199309L'

got the build further, where it failed with a missing nanosleep().

Yet another restart with

	make CC='cc -std -D_XOPEN_SOURCE_EXTENDED -D_POSIX_C_SOURCE=199309L' LIBS='-lsnprintf -lrt'

produced a successful link, and when I added the check target, I got
this felicitous report:

	PASS: fdpassing
	==================
	All 1 tests passed
	==================

Since I had never got a successful build of previous releases of
libassuan, I've happily installed the libksba-1.0.5 library on this
system, and will now see if other packages that depend on libassuan
can be built.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe at math.utah.edu  -
- 155 S 1400 E RM 233                       beebe at acm.org  beebe at computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------



More information about the Gnupg-devel mailing list