On 07/17/15 17:54, Benoît Ganne wrote:
in CI arm compilation fails. Looks like it came with gcc update. Any
thought what happed with arm compiler?

Based on gcc message, my guess is that it does not like casting from uint8_t* to uint32_t* because it could be a problem when you dereference the pointer. If your platform does not support unaligned accesses, you're screwed. The portable way of fixing that is usually to use memcpy() (which should be optimized by gcc builtins anyway), or to use packed structures casts (which will lead gcc to generate the correct code for the platform). I think ODP should have those accessors for potentially unaligned memory, as in the Linux kernel: http://www.cs.fsu.edu/~baker/devices/lxr/http/source/linux/include/linux/unaligned/packed_struct.h

ben

Accessors sounds like good idea. I thought gcc will alight such things automatically. But if compilation in different modules than gcc can not know how to alight all the code. Yes in that case we should hit it which alight is needed.

Maxim.



static inline int verify_pmr_ipsec_spi(uint8_t *pkt_addr ODP_UNUSED,
                        odp_packet_hdr_t *pkt_hdr ODP_UNUSED,
                        pmr_term_value_t *term_value ODP_UNUSED)
{
     uint32_t *spi;

     if (!pkt_hdr->input_flags.ipsec)
         return 0;

     spi = (uint32_t *)(pkt_addr + pkt_hdr->l4_offset);

*11:30:42*  In file included from odp_classification.c:17:0:
*11:30:42*  ./include/odp_classification_inlines.h: In function
'verify_pmr_ipsec_spi':
*11:30:42*  ./include/odp_classification_inlines.h:197:8: error: cast
increases required alignment of target type [-Werror=cast-align]
*11:30:42*     spi = (uint32_t *)(pkt_addr + pkt_hdr->l4_offset);
*11:30:42*           ^

Thanks,
Maxim.

_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp


_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to