--- numpy/core/setup.py.orig +++ numpy/core/setup.py @@ -552,7 +552,14 @@ if isinstance(d, str): target_f.write('#define %s\n' % (d)) else: - target_f.write('#define %s %s\n' % (d[0], d[1])) + if d[0]!='SIZEOF_LONG' and d[0]!='SIZEOF_PY_INTPTR_T': + target_f.write('#define %s %s\n' % (d[0], d[1])) + else: + target_f.write('#ifdef __LP64__\n') + target_f.write('#define %s %s\n' % (d[0], 8)) + target_f.write('#else\n') + target_f.write('#define %s %s\n' % (d[0], 4)) + target_f.write('#endif\n') # define inline to our keyword, or nothing target_f.write('#ifndef __cplusplus\n') @@ -647,7 +654,14 @@ if isinstance(d, str): target_f.write('#define %s\n' % (d)) else: - target_f.write('#define %s %s\n' % (d[0], d[1])) + if d[0]!='SIZEOF_LONG' and d[0]!='SIZEOF_PY_INTPTR_T': + target_f.write('#define %s %s\n' % (d[0], d[1])) + else: + target_f.write('#ifdef __LP64__\n') + target_f.write('#define %s %s\n' % (d[0], 8)) + target_f.write('#else\n') + target_f.write('#define %s %s\n' % (d[0], 4)) + target_f.write('#endif\n') # Define __STDC_FORMAT_MACROS target_f.write(textwrap.dedent("""