[pypy-dev] Mac osx patches

Leonardo Santagada santagada at gmail.com
Sat Oct 10 17:55:23 CEST 2009


Someone that knows more about pypy will have to apply this patch as I  
have no idea what kind of problem this could make to other people.

What I have done is made pypy use 32bit on osx by default, I guess I  
can do the same as the other platforms and decide between forcing gcc  
to compile 32bit code based on the info from the platform module.

On a side note did you made asmgcc work? I don't even think it  
supported 64bit at all.

On Oct 10, 2009, at 12:19 PM, Gabriel Lavoie wrote:

> Hello everyone,
>     here's a patch so pypy-c can be built under Snow Leopard (64 bits
> Python/GCC). I'm not 100% sure on how to make type casts but it
> builds. I'm sure someone can validate. :)
>
> Cheers,
>
> Gabriel
>
> 2009/10/6 Leonardo Santagada <santagada at gmail.com>:
>> Thanks pedronis for applying one of the patches, but without the
>> trackgcroot one I can't get no trackgcroot test to pass, and without
>> the -dynamiclib change I get one failure on test_rffi_platform.py,  
>> but
>> with it the generated pypy .s files can't be read by trackgcroot.
>>
>> Anyone knows how to fix the current failure on test_rffi_platform on
>> osx without changing the -bundle to -dynamiclib?
>>
>> And the other failure about offset_labels, maybe it is possible to
>> offset them but not by so much as 2**30 but maybe 2**24 or something?
>>
>>
>> On Sep 30, 2009, at 2:06 PM, Leonardo Santagada wrote:
>>
>>> To make compilation and asmgcroot happy on osx I made some changes,
>>> I would like to know if someone has anything against applying this
>>> stuff to trunk?
>>>
>>> Index: pypy/translator/c/gcc/trackgcroot.py
>>> ===================================================================
>>> --- pypy/translator/c/gcc/trackgcroot.py        (revision 68036)
>>> +++ pypy/translator/c/gcc/trackgcroot.py        (working copy)
>>> @@ -22,7 +22,11 @@
>>> r_sectionstart         = re.compile(r"\t\.("+'|'.join(OTHERSECTIONS)
>>> +").*$")
>>> r_functionstart_darwin = re.compile(r"_(\w+):\s*$")
>>>
>>> -OFFSET_LABELS   = 2**30
>>> +# darwin's ld complain about this hack
>>> +if sys.platform == 'darwin':
>>> +    OFFSET_LABELS = 0
>>> +else:
>>> +    OFFSET_LABELS = 2**30
>>>
>>> # inside functions
>>> LABEL           = r'([.]?[\w$@]+)'
>>> Index: pypy/translator/platform/test/test_darwin.py
>>> ===================================================================
>>> --- pypy/translator/platform/test/test_darwin.py        (revision
>>> 68036)
>>> +++ pypy/translator/platform/test/test_darwin.py        (working  
>>> copy)
>>> @@ -2,8 +2,8 @@
>>> """ File containing darwin platform tests
>>> """
>>>
>>> -import py, os
>>> -if os.name != 'darwin':
>>> +import py, sys
>>> +if sys.platform != 'darwin':
>>>     py.test.skip("Darwin only")
>>>
>>> from pypy.tool.udir import udir
>>> Index: pypy/translator/platform/darwin.py
>>> ===================================================================
>>> --- pypy/translator/platform/darwin.py  (revision 68036)
>>> +++ pypy/translator/platform/darwin.py  (working copy)
>>> @@ -18,7 +18,7 @@
>>>         self.cc = cc
>>>
>>>     def _args_for_shared(self, args):
>>> -        return (self.shared_only + ['-bundle', '-undefined',
>>> 'dynamic_lookup']
>>> +        return (self.shared_only + ['-dynamiclib', '-undefined',
>>> 'dynamic_lookup']
>>>                                  + args)
>>>
>>>     def include_dirs_for_libffi(self):
>>>
>>>
>>> --
>>> Leonardo Santagada
>>> santagada at gmail.com
>>>
>>>
>>>
>>
>> --
>> Leonardo Santagada
>> santagada at gmail.com
>>
>>
>>
>> _______________________________________________
>> pypy-dev at codespeak.net
>> http://codespeak.net/mailman/listinfo/pypy-dev
>>
>
>
>
> -- 
> Gabriel Lavoie
> glavoie at gmail.com
> <pypy-snow-leopard-translate.patch>

--
Leonardo Santagada
santagada at gmail.com






More information about the Pypy-dev mailing list