This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] ARM: Fix strcmp() for Thumb-1


On 28/05/13 11:59, Sebastian Huber wrote:
On 05/28/2013 11:36 AM, Richard Earnshaw wrote:
On 27/05/13 07:59, Sebastian Huber wrote:
On 05/27/2013 04:18 AM, Bin.Cheng wrote:
[...]
Though I have no right to approve the patch, I would like to have below
comment.
UAL is generally preferred, thus you may handle armv6-m specially by
keeping UAL for it. For example,

#if (defined(__thumb__) && defined(__ARM_ARCH_6M__))
//...
#endif

Which problem does this additional pre-processor complexity solve?  The
generated machine code is the same.


I don't think either patch is correct.  Instead we should explicitly mark the
attributes in this case, probably as follows, but I've only smoke tested this.

Sebastian, does this fix your problem?

This patches fixes my problem.  I get now this:

readelf -A ./arm-rtems4.11/thumb/newlib/libc/machine/arm/lib_a-strcmp.o
Attribute Section: aeabi
File Attributes
    Tag_CPU_name: "4T"
    Tag_CPU_arch: v4T
    Tag_THUMB_ISA_use: Thumb-1
    Tag_also_compatible_with: v6-M

The application link process yields now an ARMv4T executable.  Without the
patch I had "blx" instructions in the executable which are not supported on
ARM7TDMI-S processors.


Great.  I've committed the patch with the following ChangeLog:

2013-05-28  Richard Earnshaw  <rearnsha@arm.com>

	* libc/macine/arm/strcpy.S: Explicitly set build attributes when
	building for thumb1 targets.

R.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]