Please review the changes. I'm able to build libc.a with -mcpu=cortex-m3 -Wa,-implicit-it=always using clang + gas Thanks, weiming On 6/14/2016 9:58 AM, Zhao, Weiming wrote: > Thank you, Szabolcs. > > It's GAS-only flag, clang's integrated-as doesn't support it. I can > use -no-integrated-as. > > It also expose other errors: > > src/thread/arm/atomics.s:9: Error: cannot use register index with > PC-relative addressing -- `ldr ip,[pc,ip]' > > Clang's integrated-as accepts it but seems encoded incorrectly. > > I can fix it. > > > On 6/14/2016 9:32 AM, Szabolcs Nagy wrote: >> * Zhao, Weiming [2016-06-14 09:12:17 -0700]: >>> I haven't did a full test as the functions I modified are not >>> actually being >>> used. >>> >>> It is a bare-metal environment, using clang to compile. >>> >>> Main flags are -mcpu=cortex-m3 -Os -fdata-sections -ffunction-sections >>> -mno-unaligned-access >>> >>> Could you please let me know the gas option? >>> >> -mimplicit-it=always >> >> https://sourceware.org/binutils/docs/as/ARM-Options.html >> >>> Thanks, >>> >>> Weiing >>> >>> On 6/14/2016 6:00 AM, Rich Felker wrote: >>>> On Tue, Jun 14, 2016 at 01:49:40AM -0700, weimingz@codeaurora.org >>>> wrote: >>>>> Hi, >>>>> >>>>> I'm building MUSL with -mcpu=cortex-m3. There are a few .s files >>>>> that cannot be assembled because: (1) use predicated instructions >>>>> without IT instr (2) use sp inside reg list in ldmia/stmia. >>>>> >>>>> Please help to review the attached patch. >>>> Did you test anything? These patches do not result in working code; >>>> they just make it assemble without errors. There's already a gas >>>> option to automatically add IT instructions where needed for >>>> thumb-only targets, but that's not the only thing needed to support >>>> thumb-only/cortex-m. I'd be interested in knowing more about the setup >>>> you're trying to target. Is it Linux or bare-metal? If Linux, are you >>>> going to use the ARM/FDPIC toolchain & kernel mods? I'm about to leave >>>> at the moment but I'll follow up with a more detailed review of your >>>> patch later. >>>> >>>>> Also, is there any easy way of disabling string/arm/memcpy_le.S ? >>>>> For baremetal, unaligned access may be unavailable. >>>> That file does not perform any unaligned access. It should work on any >>>> EABI-supported version of the arm instruction set. >>>> >>>> Rich >>> -- >>> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, >>> hosted by The Linux Foundation > -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation