I have created a new spkg for libgcrypt, as the code has a very simple bug in it. The GNU compiler misses this, but the Sun compiler, being stricter does not.
http://sagetrac.org/sage_trac/ticket/6758 Basically a function written in C that is declared as void, tries to return a value: void gcry_ac_io_init_va (gcry_ac_io_t *ac_io, gcry_ac_io_mode_t mode, gcry_ac_io_type_t type, va_list ap) { return _gcry_ac_io_init_va (ac_io, mode, type, ap); } Clearly, that is illegal, but gcc misses it. Looking at the newest upstream code for this, I see the authors have changed this, so instead of trying to return a value from the function, _gcry_ac_io_init_va, it just gets executed it. void gcry_ac_io_init_va (gcry_ac_io_t *ac_io, gcry_ac_io_mode_t mode, gcry_ac_io_type_t type, va_list ap) { _gcry_ac_io_init_va (ac_io, mode, type, ap); } There's another similar function, which suffers the same problem. The fix does both. Since this code is not Solaris specific, it can be tested on any platform. Once the fix is implemented, libgcrypt will build with either the Sun or GNU compilers. Dave --~--~---------~--~----~------------~-------~--~----~ To post to this group, send an email to [email protected] To unsubscribe from this group, send an email to [email protected] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---
