On 2018-06-20 02:51, Miller Puckette wrote: > I think m_pd.h should make a reasonable guess, in a way that makes it > easy to override. Perhaps like this: > > #if !defined(PD_LONGINTTYPE) > #if (sizeof(void *) > sizeof(long)) > #define PD_LONGINTTYPE long long > #else > #define PD_LONGINTTYPE long > #endif > #endif
unfortunately, we cannot use sizeof() in pre-processor conditionals. there might be some compiler-specific hacks to achieve something like that on C99-compliant compilers, but i don't really think it's worth it. (that is: i think being able to compile Pd with older microsoft compilers is more interesting, than adding quirks). > > There's a patch on github I haven't yet looked at closely - perhpas there's > a better fix there. > i've inluded the patch in my "more toward double-precision" PR, found at: https://github.com/pure-data/pure-data/pull/300 the original (single-patch) PR is https://github.com/pure-data/pure-data/pull/7 it is much simpler, as there the only known system with an LLP64 data model¹ (which mandates "long" to be 32bit on 64bit architectures) is... MSW. so it's simple enough to just special-case w64 and be done. i've also included fgmasdr IOhannes PS: i've just seen that the patch only addresses the amd64 (aka x86_64) architecture, while w64 also uses LLP64 on ia-64 (aka itanium). ¹ https://en.wikipedia.org/wiki/64-bit_computing#64-bit_data_models
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Pd-dev mailing list Pd-dev@lists.iem.at https://lists.puredata.info/listinfo/pd-dev