Do not compute platform, this does not work in cross compile environment
since it pokes at the system for getting architecture values

Upstream-Status: Inappropriate
Signed-off-by: Khem Raj <raj.khem@gmail.com>

Index: M2Crypto-0.30.1/setup.py
===================================================================
--- M2Crypto-0.30.1.orig/setup.py
+++ M2Crypto-0.30.1/setup.py
@@ -160,22 +160,6 @@ class _M2CryptoBuildExt(build_ext.build_
             log.debug('self.include_dirs = %s', self.include_dirs)
             log.debug('self.library_dirs = %s', self.library_dirs)
 
-        if platform.system() == "Linux":
-            # For RedHat-based distros, the '-D__{arch}__' option for
-            # Swig needs to be normalized, particularly on i386.
-            mach = platform.machine().lower()
-            if mach in ('i386', 'i486', 'i586', 'i686'):
-                arch = '__i386__'
-            elif mach in ('ppc64', 'powerpc64', 'ppc64le', 'ppc64el'):
-                arch = '__powerpc64__'
-            elif mach in ('ppc', 'powerpc'):
-                arch = '__powerpc__'
-            else:
-                arch = '__%s__' % mach
-            self.swig_opts.append('-D%s' % arch)
-            if mach in ('ppc64le', 'ppc64el'):
-                self.swig_opts.append('-D_CALL_ELF=2')
-
         self.swig_opts.extend(['-I%s' % i for i in self.include_dirs])
 
         # Some Linux distributor has added the following line in
