Following small discussion I had with tedu@ this is just small diff, just for the sake of C standard "correctness" ... dropping some arithmetic pointer with void pointers ...
Hopes it might find some interest/usefullness ... Thanks in advance. Index: gnu/gcc/gcc/unwind-dw2.c =================================================================== RCS file: /cvs/src/gnu/gcc/gcc/unwind-dw2.c,v retrieving revision 1.2 diff -u -p -r1.2 unwind-dw2.c --- gnu/gcc/gcc/unwind-dw2.c 7 May 2010 22:06:10 -0000 1.2 +++ gnu/gcc/gcc/unwind-dw2.c 8 Dec 2014 17:03:58 -0000 @@ -1528,9 +1528,9 @@ uw_install_context_1 (struct _Unwind_Con /* We adjust SP by the difference between CURRENT and TARGET's CFA. */ if (STACK_GROWS_DOWNWARD) - return target_cfa - current->cfa + target->args_size; + return (unsigned char *)target_cfa - (unsigned char *)current->cfa + target->args_size; else - return current->cfa - target_cfa - target->args_size; + return (unsigned char *)current->cfa - (unsigned char *)target_cfa - target->args_size; } return 0; } Index: lib/librthread/rthread_np.c =================================================================== RCS file: /cvs/src/lib/librthread/rthread_np.c,v retrieving revision 1.14 diff -u -p -r1.14 rthread_np.c --- lib/librthread/rthread_np.c 9 Aug 2014 03:29:35 -0000 1.14 +++ lib/librthread/rthread_np.c 8 Dec 2014 17:04:00 -0000 @@ -66,7 +66,7 @@ pthread_stackseg_np(pthread_t thread, st #ifdef MACHINE_STACK_GROWS_UP sinfo->ss_sp = thread->stack->base; #else - sinfo->ss_sp = thread->stack->base + thread->stack->len; + sinfo->ss_sp = (unsigned char *)thread->stack->base + thread->stack->len; #endif sinfo->ss_size = thread->stack->len; if (thread->stack->guardsize != 1) Index: libexec/ld.so/util.c =================================================================== RCS file: /cvs/src/libexec/ld.so/util.c,v retrieving revision 1.35 diff -u -p -r1.35 util.c --- libexec/ld.so/util.c 14 Jul 2014 03:54:50 -0000 1.35 +++ libexec/ld.so/util.c 8 Dec 2014 17:04:00 -0000 @@ -72,16 +72,17 @@ void _dl_randombuf(void *buf, size_t buflen) { size_t chunk; + unsigned char *pbuf = buf; while (buflen != 0) { if (buflen > 256) chunk = 256; else chunk = buflen; - if (_dl_getentropy(buf, chunk) != 0) + if (_dl_getentropy(pbuf, chunk) != 0) _dl_exit(8); buflen -= chunk; - buf += chunk; + pbuf += chunk; } } Index: usr.sbin/nsd/difffile.c =================================================================== RCS file: /cvs/src/usr.sbin/nsd/difffile.c,v retrieving revision 1.1.1.15 diff -u -p -r1.1.1.15 difffile.c --- usr.sbin/nsd/difffile.c 16 Sep 2014 16:54:03 -0000 1.1.1.15 +++ usr.sbin/nsd/difffile.c 8 Dec 2014 17:04:01 -0000 @@ -716,10 +716,10 @@ delete_RR(namedb_type* db, const dname_t rrset->rr_count-1]) zone->nsec3_param = &rrset->rrs[rrnum]; else - zone->nsec3_param = - (void*)zone->nsec3_param - -(void*)rrs_orig + - (void*)rrset->rrs; + zone->nsec3_param = (void*)( + (char*)zone->nsec3_param + -(char*)rrs_orig + + (char*)rrset->rrs); } #endif /* NSEC3 */ rrset->rr_count --; @@ -817,8 +817,8 @@ add_RR(namedb_type* db, const dname_type assert(zone->nsec3_param >= rrs_old && zone->nsec3_param < rrs_old+rrset->rr_count); /* in this order to make sure no overflow/underflow*/ - zone->nsec3_param = (void*)zone->nsec3_param - - (void*)rrs_old + (void*)rrset->rrs; + zone->nsec3_param = (void*)((char *)zone->nsec3_param - + (char*)rrs_old + (char*)rrset->rrs); } #endif /* NSEC3 */ } Index: usr.sbin/nsd/udb.h =================================================================== RCS file: /cvs/src/usr.sbin/nsd/udb.h,v retrieving revision 1.1.1.3 diff -u -p -r1.1.1.3 udb.h --- usr.sbin/nsd/udb.h 16 Sep 2014 16:54:00 -0000 1.1.1.3 +++ usr.sbin/nsd/udb.h 8 Dec 2014 17:04:01 -0000 @@ -54,7 +54,7 @@ typedef uint64_t udb_void; /** convert relptr to usable pointer */ #define UDB_REL(base, relptr) ((base) + (relptr)) /** from system pointer to relative pointer */ -#define UDB_SYSTOREL(base, ptr) ((udb_void)((void*)(ptr) - (base))) +#define UDB_SYSTOREL(base, ptr) ((udb_void)((ptr) - (base))) /** MAX 2**x exponent of alloced chunks, for 1Mbytes. The smallest * chunk is 16bytes (8preamble+8data), so 0-3 is unused. */ Index: usr.sbin/nsd/xfrd-tcp.c =================================================================== RCS file: /cvs/src/usr.sbin/nsd/xfrd-tcp.c,v retrieving revision 1.9 diff -u -p -r1.9 xfrd-tcp.c --- usr.sbin/nsd/xfrd-tcp.c 16 Sep 2014 17:01:38 -0000 1.9 +++ usr.sbin/nsd/xfrd-tcp.c 8 Dec 2014 17:04:01 -0000 @@ -40,7 +40,7 @@ xfrd_pipe_cmp(const void* a, const void* if(x->num_unused != y->num_unused) return x->num_unused - y->num_unused; /* different pipelines are different still, even with same numunused*/ - return (int)(a - b); + return (int)((char *)a - (char *)b); } xfrd_tcp_set_t* xfrd_tcp_set_create(struct region* region)