• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » Development Tools » TI C/C++ Compiler » TI C/C++ Compiler - Forum » can't pack struct with long long member
Share
TI C/C++ Compiler
  • Forum
Options
  • Subscribe via RSS

Forums

can't pack struct with long long member

This question is answered
schneiderham
Posted by schneiderham
on Oct 25 2011 09:36 AM
Expert1295 points

I am using CCS5 RC with a M4F processor.  I have several structs that I am packing using __attribute__ ((packed)) which works except for this struct:

typedef struct _bsd_select_args_t

{

    long nfds;

    long rdoffset;

    long wroffset;

    long exoffset;

    long tooffset;

    unsigned long isblock;

    unsigned long rdfd;

    unsigned long wrfd;

    unsigned long exfd;

    unsigned long long timeout;

}__attribute__ ((packed)) bsd_select_args_t;

I get the following error:

#1167 invalid attribute for "struct _bsd_select_args_t" ..... line 125 C/C++ Problem

 

if I change timeout member from:

unsigned long long timeout;

to:

unsigned long timeout;

then it build ok.

I therefore can only assume that the packed attribute is not working for long long type.

 

Note:

I also have built this file for the MSP430FR5739 without problem so I think it is only an issue with the ARM compiler.

 

packed CCS5 long long
Report Abuse
  • Reply
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
All Replies
  • Anna Youssefi
    Posted by Anna Youssefi
    on Oct 25 2011 13:02 PM
    Verified Answer
    Verified by schneiderham
    Prodigy130 points

    Our current version of the ARM compiler only supports the GCC packed attribute on targets that have hardware support for unaligned loads and stores, and for the data sizes that are supported.  The ARM Cortex targets, including M4F, have hardware support for unaligned accesses for data sizes through 32 bits only.  We have added support for packed 64-bit data sizes on these targets (as well as packed attribute support for other ARM targets that don't have hardware support for unaligned accesses) in the next version of our compiler.

    Our next release will include:

    -- packed support for 64-bit data sizes on ARM Cortex targets

    -- packed support for data sizes through 64-bits on pre-Cortex ARM targets with --abi=eabi

    --packed support for data sizes through 32 bits on pre-Cortex ARM targets with COFF abi

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • schneiderham
    Posted by schneiderham
    on Oct 25 2011 13:22 PM
    Expert1295 points

    good to know. Thank you.  

    When is this version planned to be released?

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • codya
    Posted by codya
    on Oct 25 2011 13:50 PM
    Expert3040 points

    The next release will be ARM CGT 5.0 and it is planned for the middle of next year.

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
TI E2E™ Community
  • Support Forums
  • Blogs
  • Videos
  • Groups
  • Site Support & Feedback
  • Settings
TI E2E™ Community Groups
  • TI University Program
  • Make the Switch
  • Microcontroller Projects
  • Motor Drive & Control
Other Communities
  • Deyisupport
  • Designsomething.org
  • beagleboard.org
  • TI on Element 14
  • TI on TechXchangeSM
Other Technical & Support Resources
  • WEBENCH® Design Center
  • Product Information Centers
  • Technical Documents
  • TI Design Network
  • TI Technical Articles
  • TI Training

All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
embedded processors, along with software, tools and the industry’s largest sales/support staff.

© Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy Policy | Terms of Use