def sizeof(arch, t): assert isinstance(t, (Parameter, ) + six.string_types) if isinstance(t, Parameter): return sizeof(arch, t.type) size = _sizes.get(t) if size is None: # We don't know the size of this type, so we'll ask the C compiler. toolprefix = os.environ.get('TOOLPREFIX', '') compiler = '%sgcc' % toolprefix extra_flags = [] # Account for the fact that we may be cross-compiling using our native # compiler. if arch == 'ia32' and platform.machine() == 'x86_64': extra_flags.append('-m32') elif arch == 'x86_64' and platform.machine() == 'i386': extra_flags.append('-m64') # Determine the size by invoking the c compiler size = sizeof_probe.probe_sizeof(t, compiler, extra_flags) # Cache the result for next time. _sizes[t] = size assert size is not None return size
def sizeof(arch, t): assert isinstance(t, (Parameter,) + six.string_types) if isinstance(t, Parameter): return sizeof(arch, t.type) size = _sizes.get(t) if size is None: # We don't know the size of this type, so we'll ask the C compiler. toolprefix = os.environ.get('TOOLPREFIX', '') compiler = '%sgcc' % toolprefix extra_flags = [] # Account for the fact that we may be cross-compiling using our native # compiler. if arch == 'ia32' and platform.machine() == 'x86_64': extra_flags.append('-m32') elif arch == 'x86_64' and platform.machine() == 'i386': extra_flags.append('-m64') # Determine the size by invoking the c compiler size = sizeof_probe.probe_sizeof(t, compiler, extra_flags) # Cache the result for next time. _sizes[t] = size assert size is not None return size