sparc64/160289: Patch for compile tools/netrate/[netblast|netsend]
on sparc64
Olivier Cochard-Labbe
olivier at cochard.me
Mon Aug 29 17:40:14 UTC 2011
>Number: 160289
>Category: sparc64
>Synopsis: Patch for compile tools/netrate/[netblast|netsend] on sparc64
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-sparc64
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Mon Aug 29 17:40:13 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator: Olivier Cochard-Labbe
>Release: 8.2-RELEASE
>Organization:
>Environment:
FreeBSD sparc64.bsdrp.net 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Sun Mar 6 17:26:52 CET 2011 root at sparc64.bsdrp.net:/usr/obj/usr/src/sys/GENERIC sparc64
>Description:
I'm trying to compile netblast on my Sun Blade 150, but I can't
because there is alignement error in the code:
[root at sparc64]/usr/src/tools/tools/netrate/netblast#make
Warning: Object directory not changed from original
/usr/src/tools/tools/netrate/netblast
cc -O2 -pipe -std=gnu99 -fstack-protector -Wsystem-headers -Werror
-Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes
-Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual
-Wwrite-strings -Wswitch -Wshadow -Wcast-align -Wunused-parameter
-Wno-pointer-sign -Wformat=2 -Wno-format-extra-args -Werror -c
netblast.c
cc1: warnings being treated as errors
netblast.c: In function 'blast_loop':
netblast.c:115: warning: cast increases required alignment of target type
*** Error code 1
Stop in /usr/src/tools/tools/netrate/netblast
>How-To-Repeat:
On a sparc64 machine:
/usr/src/tools/tools/netrate/netblast;make
or:
/usr/src/tools/tools/netrate/netsend;make
>Fix:
With the help of Marius Strobl (marius at alchemy.franken.de) from the freebsd-sparc64 mailing-list, here is the patch for fixing theses problems.
Patch attached with submission follows:
diff -ruN netrate.orig/netblast/netblast.c netrate/netblast/netblast.c
--- netrate.orig/netblast/netblast.c 2011-08-29 19:20:21.000000000 +0200
+++ netrate/netblast/netblast.c 2011-08-29 19:19:38.000000000 +0200
@@ -26,6 +26,7 @@
* $FreeBSD: src/tools/tools/netrate/netblast/netblast.c,v 1.3.10.1.6.1 2010/12/21 17:09:25 kensmith Exp $
*/
+#include <sys/endian.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/time.h>
@@ -108,11 +109,9 @@
* previous send, the error will turn up the current send
* operation, causing the current sequence number also to be
* skipped.
- *
- * XXXRW: Note alignment assumption.
*/
if (packet_len >= 4) {
- *((u_int32_t *)packet) = htonl(counter);
+ be32enc(packet, counter);
counter++;
}
if (send(s, packet, packet_len, 0) < 0)
diff -ruN netrate.orig/netsend/netsend.c netrate/netsend/netsend.c
--- netrate.orig/netsend/netsend.c 2011-08-29 19:20:21.000000000 +0200
+++ netrate/netsend/netsend.c 2011-08-29 19:22:16.000000000 +0200
@@ -26,6 +26,7 @@
* $FreeBSD: src/tools/tools/netrate/netsend/netsend.c,v 1.9.10.1.6.1 2010/12/21 17:09:25 kensmith Exp $
*/
+#include <sys/endian.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/time.h>
@@ -164,11 +165,9 @@
* previous send, the error will turn up the current send
* operation, causing the current sequence number also to be
* skipped.
- *
- * XXXRW: Note alignment assumption.
*/
if (packet_len >= 4) {
- *((u_int32_t *)packet) = htonl(counter);
+ be32enc(packet, counter);
counter++;
}
if (send(s, packet, packet_len, 0) < 0)
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-sparc64
mailing list