[MacPorts] #17748: apr-1.3.3: 4-way universal build: duplicate case value and bad 64-32 bit switch logic
#17748: apr-1.3.3: 4-way universal build: duplicate case value and bad 64-32 bit switch logic -------------------------------+-------------------------------------------- Reporter: eborisch@… | Owner: macports-tickets@… Type: defect | Status: new Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Keywords: apr universal | Port: apr -------------------------------+-------------------------------------------- Ticket #15523 is still true; please fix. How to fix: as noted on http://sarth.thallos.org/2008/10/apr-and-32-bit64 -bit-universal-binary.html - patch include/apr.h from {{{ typedef long apr_int64_t; typedef unsigned long apr_uint64_t; }}} to {{{ typedef long long apr_int64_t; typedef unsigned long long apr_uint64_t; }}} Also, atomic/unix/ia32.c needs to have the two if clauses at the end changed to something like this: {{{ #if !(defined(__LP64__) ) asm volatile ("lock; cmpxchgl %2, %1" : "=a" (prev), "=m" (*mem) : "r" (with), "m" (*mem), "0" (cmp)); #else asm volatile ("lock; cmpxchgq %q2, %1" : "=a" (prev), "=m" (*mem) : "r" ((unsigned long)with), "m" (*mem), "0" ((unsigned long)cmp)); #endif return prev; } APR_DECLARE(void*) apr_atomic_xchgptr(volatile void **mem, void *with) { void *prev; #if !(defined(__LP64__) ) asm volatile ("xchgl %2, %1" : "=a" (prev), "+m" (*mem) : "0" (with)); #else asm volatile ("xchgq %q2, %1" : "=a" (prev), "+m" (*mem) : "r" ((unsigned long)with)); #endif return prev; } }}} These are both issues with doing the 32-bit and 64-bit builds concurrently. -- Ticket URL: <http://trac.macports.org/ticket/17748> MacPorts <http://www.macports.org/> Ports system for Mac OS
#17748: apr-1.3.3: 4-way universal build: duplicate case value and bad 64-32 bit switch logic -------------------------------+-------------------------------------------- Reporter: eborisch@… | Owner: dluke@… Type: defect | Status: new Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Keywords: universal | Port: apr -------------------------------+-------------------------------------------- Changes (by devans@…): * cc: dluke@… (removed) * keywords: apr universal => universal * owner: macports-tickets@… => dluke@… Comment: Assigning to maintainer. -- Ticket URL: <http://trac.macports.org/ticket/17748#comment:1> MacPorts <http://www.macports.org/> Ports system for Mac OS
#17748: apr-1.3.3: 4-way universal build: duplicate case value and bad 64-32 bit switch logic -------------------------------+-------------------------------------------- Reporter: eborisch@… | Owner: dluke@… Type: defect | Status: new Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Keywords: universal | Port: apr -------------------------------+-------------------------------------------- Comment(by eborisch@…): A better patch may be to change apr.h as above, but to also put this in: {{{ #ifdef __LP64__ #define APR_SIZEOF_VOIDP 8 #else #define APR_SIZEOF_VOIDP 4 #endif }}} replacing the existing "#define APR_SIZEOF_VOIDP 8" that exists after configure... With this, no change is needed to atomic/unix/ia32.c -- Ticket URL: <http://trac.macports.org/ticket/17748#comment:2> MacPorts <http://www.macports.org/> Ports system for Mac OS
#17748: apr-1.3.3: 4-way universal build: duplicate case value and bad 64-32 bit switch logic --------------------------------+------------------------------------------- Reporter: eborisch@… | Owner: dluke@… Type: defect | Status: closed Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Resolution: duplicate | Keywords: universal Port: apr | --------------------------------+------------------------------------------- Changes (by ryandesign@…): * status: new => closed * resolution: => duplicate Comment: Duplicate of #17090. -- Ticket URL: <http://trac.macports.org/ticket/17748#comment:3> MacPorts <http://www.macports.org/> Ports system for Mac OS
participants (1)
-
MacPorts