#9202: update matplotlib
----------------------------+-----------------------------------------------
   Reporter:  jason         |       Owner:  drkirkby  
       Type:  defect        |      Status:  needs_work
   Priority:  major         |   Milestone:  sage-4.4.4
  Component:  packages      |    Keywords:            
     Author:  Jason Grout   |    Upstream:  N/A       
   Reviewer:  David Kirkby  |      Merged:            
Work_issues:                |  
----------------------------+-----------------------------------------------
Changes (by drkirkby):

  * status:  needs_review => needs_work
  * reviewer:  => David Kirkby


Comment:

 This version from svn is causing a problem on the following system, which
 we should report to the developers.

  * Sun Blade 1000
  * 2 x 900 MHz
  * 2 GB RAM
  * Solaris 10 03/05

 {{{
 /usr/include/stdlib.h:144: error: declaration of C function 'void
 swab(const char*, char*, ssize_t)' conflicts with
 /usr/include/unistd.h:480: error: previous declaration 'void swab(const
 void*, void*, ssize_t)' here
 error: command 'gcc' failed with exit status 1
 Error building matplotlib package.
 }}}

 The Solaris header files are a lot stricter about what they do/do not
 declare than most systems, depending on the mode of compilation. An
 inspection of stdlib.h shows the problem.

 {{{
 extern int putenv(char *);
 extern void setkey(const char *);
 #endif /* defined(__EXTENSIONS__) || !defined(_STRICT_STDC) ... */

 /*
  * swab() has historically been in <stdlib.h> as delivered from AT&T
  * and continues to be visible in the default compilation environment.
  * As of Issue 4 of the X/Open Portability Guides, swab() was declared
  * in <unistd.h>. As a result, with respect to X/Open namespace the
  * swab() declaration in this header is only visible for the XPG3
  * environment.
  */
 #if (defined(__EXTENSIONS__) || \
         (!defined(_STRICT_STDC__) && !defined(_POSIX_C_SOURCE))) && \
         (!defined(_XOPEN_SOURCE) || (defined(_XPG3) && !defined(_XPG4)))
 #ifndef _SSIZE_T
 #define _SSIZE_T
 #if defined(_LP64) || defined(_I32LPx)
 typedef long    ssize_t;        /* size of something in bytes or -1 */
 #else
 typedef int     ssize_t;        /* (historical version) */
 #endif
 #endif  /* !_SSIZE_T */

 extern void swab(const char *, char *, ssize_t);
 #endif /* defined(__EXTENSIONS__) || !defined(_STRICT_STDC) ... */
 }}}

 and in unistd.h

 {{{
 #if defined(_XPG4)
 /* __EXTENSIONS__ makes the SVID Third Edition prototype in stdlib.h
 visible */
 extern void swab(const void *_RESTRICT_KYWD, void *_RESTRICT_KYWD,
 ssize_t);
 #endif /* defined(_XPG4) */
 }}}

 As such, I think your previous version, based on the stable release,
 rather than a SVN snapshot is preferable.

 I'm attaching the two relevant header files to this ticket.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/9202#comment:10>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to