[MacPorts] #51216: Libemf @1.0.8 does not build on PPC Leopard (Mac OS X 10.5.8) because of missing #define

MacPorts noreply at macports.org
Sat Apr 23 01:17:14 PDT 2016


#51216: Libemf @1.0.8 does not build on PPC Leopard (Mac OS X 10.5.8) because of
missing #define
-----------------------------+--------------------------------
 Reporter:  Peter_Dyballa@…  |      Owner:  macports-tickets@…
     Type:  defect           |     Status:  new
 Priority:  Normal           |  Milestone:
Component:  ports            |    Version:  2.3.4
 Keywords:                   |       Port:  libemf
-----------------------------+--------------------------------
 The failure is this:

 {{{
 Making all in libemf
 make[1]: Entering directory
 `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_graphics_libemf/libemf/work/libemf-1.0.8/libemf'
 /bin/sh ../libtool  --tag=CXX   --mode=compile /usr/bin/g++-4.2
 -DHAVE_CONFIG_H -I. -I../config  -I../include -I/opt/local/include  -pipe
 -Os -arch ppc -D_REENTRANT -DPTHREADS -MT libemf.lo -MD -MP -MF
 .deps/libemf.Tpo -c -o libemf.lo libemf.cpp
 libtool: compile:  /usr/bin/g++-4.2 -DHAVE_CONFIG_H -I. -I../config
 -I../include -I/opt/local/include -pipe -Os -arch ppc -D_REENTRANT
 -DPTHREADS -MT libemf.lo -MD -MP -MF .deps/libemf.Tpo -c libemf.cpp  -fno-
 common -DPIC -o .libs/libemf.o
 In file included from ../include/libEMF/wine/windef.h:16,
                  from ../include/libEMF/emf.h:27,
                  from libemf.h:32,
                  from libemf.cpp:24:
 ../include/libEMF/wine/winnt.h:61:3: error: #error Unknown CPU
 architecture!
 ../include/libEMF/wine/winnt.h:1429:2: error: #error You need to define a
 CONTEXT for your CPU
 In file included from ../include/libEMF/wine/windef.h:16,
                  from ../include/libEMF/emf.h:27,
                  from libemf.h:32,
                  from libemf.cpp:24:
 ../include/libEMF/wine/winnt.h:1432: error: expected initializer before
 ‘*’ token
 ../include/libEMF/wine/winnt.h:2699: error: ‘PCONTEXT’ does not name a
 type
 ../include/libEMF/wine/winnt.h:2712: error: ‘PCONTEXT’ has not been
 declared
 In file included from ../include/libEMF/emf.h:28,
                  from libemf.h:32,
                  from libemf.cpp:24:
 ../include/libEMF/wine/winbase.h:120: error: ‘PCONTEXT’ does not name a
 type
 ../include/libEMF/wine/winbase.h:1243: error: ‘CONTEXT’ has not been
 declared
 ../include/libEMF/wine/winbase.h:1377: error: expected ‘,’ or ‘...’ before
 ‘*’ token
 ../include/libEMF/wine/winbase.h:1377: error: ISO C++ forbids declaration
 of ‘CONTEXT’ with no type
 make[1]: *** [libemf.lo] Error 1
 make[1]: Leaving directory
 `/opt/local/var/macports/build/_opt_local_var_macports_sources_nue.de.rsync.macports.org_macports_release_tarballs_ports_graphics_libemf/libemf/work/libemf-1.0.8/libemf'
 make: *** [all-recursive] Error 1
 }}}

 The message comes from these lines in `../include/libEMF/wine/winnt.h`:

 {{{
    30   /* Architecture dependent settings. */
    31   /* These are hardcoded to avoid dependencies on config.h in
 Winelib apps. */
    32   #if defined(__i386__)
    33   # undef  WORDS_BIGENDIAN
    34   # undef  BITFIELDS_BIGENDIAN
    35   # define ALLOW_UNALIGNED_ACCESS
    36   #elif defined(__x86_64__)
    37   # undef  WORDS_BIGENDIAN
    38   # undef  BITFIELDS_BIGENDIAN
    39   # define ALLOW_UNALIGNED_ACCESS
    40   #elif defined(__alpha__)
    41   # undef  WORDS_BIGENDIAN
    42   # undef  BITFIELDS_BIGENDIAN
    43   # undef  ALLOW_UNALIGNED_ACCESS
    44   #elif defined(__arm__)
    45   # undef  WORDS_BIGENDIAN
    46   # undef  BITFIELDS_BIGENDIAN
    47   # undef  ALLOW_UNALIGNED_ACCESS
    48   #elif defined(__sparc__)
    49   # define WORDS_BIGENDIAN
    50   # define BITFIELDS_BIGENDIAN
    51   # undef  ALLOW_UNALIGNED_ACCESS
    52   #elif defined(__PPC__)
    53   # define WORDS_BIGENDIAN
    54   # define BITFIELDS_BIGENDIAN
    55   # undef  ALLOW_UNALIGNED_ACCESS
    56   #elif defined(__s390__)
    57   # define WORDS_BIGENDIAN
    58   # define BITFIELDS_BIGENDIAN
    59   # undef  ALLOW_UNALIGNED_ACCESS
    60   #elif !defined(RC_INVOKED)
    61   # error Unknown CPU architecture!
    62   #endif
 }}}

 All architectures are lower case, except PowerPC! And GCC 4.2 #defines:

 {{{
 #define _ARCH_PPC 1
 #define _ARCH_PPCGR 1
 define __ppc__ 1
 #define __POWERPC__ 1
 }}}

 So we have an easy patch for this case! (Presumingly.)

-- 
Ticket URL: <https://trac.macports.org/ticket/51216>
MacPorts <https://www.macports.org/>
Ports system for OS X


More information about the macports-tickets mailing list