From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 74171 invoked by alias); 14 Mar 2015 10:24:01 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 74154 invoked by uid 89); 14 Mar 2015 10:24:00 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 X-HELO: smtp.gentoo.org Received: from smtp.gentoo.org (HELO smtp.gentoo.org) (140.211.166.183) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Sat, 14 Mar 2015 10:23:59 +0000 Received: from vapier (localhost [127.0.0.1]) by smtp.gentoo.org (Postfix) with SMTP id 0CDC4340A63; Sat, 14 Mar 2015 10:23:56 +0000 (UTC) Date: Sat, 14 Mar 2015 10:24:00 -0000 From: Mike Frysinger To: Jiri Gaisler Cc: gdb-patches@sourceware.org Subject: Re: [PATCH v3 03/14] sim/erc32: Switched emulated memory to host endian order. Message-ID: <20150314102356.GZ877@vapier> Mail-Followup-To: Jiri Gaisler , gdb-patches@sourceware.org References: <1425244244-27709-1-git-send-email-jiri@gaisler.se> <1425244244-27709-4-git-send-email-jiri@gaisler.se> <20150302011342.GH19363@vapier> <55020453.9080502@gaisler.se> <20150312235507.GG877@vapier> <55029ED9.5070009@gaisler.se> <20150314074532.GX877@vapier> <5503FDF9.8000109@gaisler.se> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="zAZKrYjO7GRpkTOs" Content-Disposition: inline In-Reply-To: <5503FDF9.8000109@gaisler.se> X-IsSubscribed: yes X-SW-Source: 2015-03/txt/msg00419.txt.bz2 --zAZKrYjO7GRpkTOs Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-length: 3605 On 14 Mar 2015 10:23, Jiri Gaisler wrote: > On 14/03/15 08:45, Mike Frysinger wrote: > > On 13 Mar 2015 09:24, Jiri Gaisler wrote: > >> On 13/03/15 00:55, Mike Frysinger wrote: > >>> On 12 Mar 2015 22:25, Jiri Gaisler wrote: > >>>> On 02/03/15 02:13, Mike Frysinger wrote: > >>>>>> +#ifdef HOST_LITTLE_ENDIAN > >>>>>>> + for (i =3D 0; i < (count / 4); i++) wbuffer[i] =3D ntohl(w= buffer[i]); // endian swap > >>>>>>> +#endif > >>>>> > >>>>> sim-endian.h already provides a lot of helper funcs that i'm pretty= sure you=20 > >>>>> can use here. > >>>> > >>>> I don't understand why ntohl() is a problem. It is a common Posix fu= nction > >>>> that converts big endian to host endian, exactly what is needed. Usi= ng > >>>> sim-endian.h pulls in a lot of the sim-*.c files due to dependencies= and > >>>> makes the simulator larger than necessary .... > >>> > >>> "network" has no meaning here. using it as a proxy for moving betwee= n big=20 > >>> endian and native endian when there are clear functions that the sim = has=20 > >>> standardized on isn't correct. your code also (1) requires duplicati= ng branches=20 > >>> and (2) inline preprocessor checks. it also does not properly handle= bi-endian=20 > >>> builds. sim-endian does all of these for you. the whole point of co= mmon/ is=20 > >>> to delete code from each sim rather than open coding it everywhere. > >>> > >>> wrt size, i don't think that's a compelling argument. we're talking = units of=20 > >>> KiB here, and i can't even count that low :P. > >>> > >>> if you're having trouble converting the build over (compiling/linking= errors),=20 > >>> then we can discuss that. but it'd be a matter of "do we do it now o= r later"=20 > >>> rather than "do we do ever convert". > >> > >> Right. I tried to use the T2H_4 macro, but can't get it to compile. > >> I included and added sim-endian.o and sim-io.o to the > >> Makefile, but it complains about unresolved function etc. Do I really > >> need to create a sim-main.c and sim-main.h just to use T2H? > >=20 > > i've pushed a patch to bury the sim-io.h include in sim-assert.h (since= that's=20 > > the header that actually uses the sim_io_xxx funcs). if you define you= r own=20 > > ASSERT/SIM_ASSERT macros, it should be avoided for now. just make sure= you add=20 > > a note that they should get converted to sim-assert.h at some point. >=20 > I'm not sure this helps. sim-endian.c includes sim-assert.h, so I get the > same problem even after your patch: >=20 > gcc -DHAVE_CONFIG_H -DPROFILE=3D1 -DWITH_PROFILE=3D-1 -DWITH_= HOST_BYTE_ORDER=3DLITTLE_ENDIAN -DDEFAULT_INLINE=3D0 -DFAST_UART = -I../../../../../ibm/src/gdb/binutils-gdb/sim/erc32/../.. -I. -I../../../= ../../ibm/src/gdb/binutils-gdb/sim/erc32 -I../common > -I../../../../../ibm/src/gdb/binutils-gdb/sim/erc32/../common -I../../inc= lude -I../../../../../ibm/src/gdb/binutils-gdb/sim/erc32/../../include -I..= /../bfd -I../../../../../ibm/src/gdb/binutils-gdb/sim/erc32/../../bfd -I../= ../opcodes > -I../../../../../ibm/src/gdb/binutils-gdb/sim/erc32/../../opcodes -g -O2= -static-libstdc++ -static-libgcc -o run \ > run.o libsim.a ../../bfd/libbfd.a ../../opcodes/libopcodes.a ../../li= biberty/libiberty.a -ltermcap -ldl -lz -lnsl ../../readline/libreadline.a = -ltermcap -lm > libsim.a(sim-endian.o): In function `offset_1': > /home/jiri/src/gdb/v4/sim/erc32/../../../../../ibm/src/gdb/binutils-gdb/s= im/erc32/../common/sim-n-endian.h:145: undefined reference to `sim_io_error' did you define ASSERT/SIM_ASSERT before including sim-endian.h ? -mike --zAZKrYjO7GRpkTOs Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature Content-length: 819 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJVBAw8AAoJEEFjO5/oN/WB1JIQAMRwFUxbU4OemOXrIeSSkY9f yE0zfeupnZupIz23P2+jDFuNsYejKoHHI8p/sIsc9mWNXKQWir23phTAl1CW5Eda kW1GtEeZYn8fiIao16cjk5N8qN2ODt86SCCUtyTowZUZeUa+Z2e7N+/1wE1VG7eI 3iDKTMLBjMJ2/wYg9mJVDWt9X1nQzFzX9VXlHLMwCzeg0osaWoxar/EWRdGur407 Lo3286G/3vRo/58MueniUqHGRYqr+6E/GmE7N4KQfRTZwDgxZx7ADK1OU5L7kIW+ bZzYUDc9alIIKDKw48qC0/UZaRCg8AaapHvB+VZrTeLC89KaVRok0Am9UB3/85O5 Pjg0/4LuEYGs0UsSt9jEXqX/6/gPqjUMlBk2mnasVhkwy6MehKkSg3RF6KqcggKs jEFDiCFOUqxO1CTZxw8EBvct6wCjSq8LfGdtt6immU1vpQ0BDavPt2cM2PTUZgJP wO5B+SGWlcMtdw3Ln0bqSbdrvi24S9CrypDUaWPT2u81CpFSMHB1pF33kJ28+M0j Dl+sAV2BfHQNVtvECQGzhtlQEloOaodoZbnmMA5JEtrL35KahV5zqtfnghbx4rlG EyMTqss7qQRaECOuuQPvDzapupq38+11WPTUTRquuZJlyqyQ3LwwrGsHBq5BqgWZ yq9tRllqo/oHe916FsTr =v4iY -----END PGP SIGNATURE----- --zAZKrYjO7GRpkTOs--