Wildcards no longer supported?

Bug #1298958 reported by Leo Havmøller on 2014-03-28
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
GNU Arm Embedded Toolchain
Critical
Terry Guo
4.8
Critical
Terry Guo

Bug Description

It seems *.o wildcard for linking is no longer supported in 2014q1:
<pre>
Linking CoreTest.hex
"""C:\Program Files (x86)\GNU Tools ARM Embedded\4.8 2014q1\bin\arm-none-eabi-gc
c.exe" -specs=nano.specs -LD:\Work_OS5x\Include -mcpu=cortex-m0 -mthumb -Wl,-sta
tic -Wl,-nostdlib -Wl,--cref -Wl,--gc-sections -Wl,-Map=CoreTest.map Obj\\*.o
-T CoreTest.def -L"C:\Program Files (x86)\GNU Tools ARM Embedded\4.8 2014q1\lib"
  -o CoreTest.elf""
arm-none-eabi-gcc.exe: error: Obj\\*.o: Invalid argument
</pre>

Was OK in 2013q4 and earlier:
<pre>
Linking CoreTest.hex
"""C:\Program Files (x86)\GNU Tools ARM Embedded\4.8 2013q4\bin\arm-none-eabi-gc
c.exe" -specs=nano.specs -LD:\Work_OS5x\Include -mcpu=cortex-m0 -mthumb -Wl,-sta
tic -Wl,-nostdlib -Wl,--cref -Wl,--gc-sections -Wl,-Map=CoreTest.map Obj\\*.o
-T CoreTest.def -L"C:\Program Files (x86)\GNU Tools ARM Embedded\4.8 2013q4\lib"
  -o CoreTest.elf""

    6098 bytes code
    3667 bytes data
     537 bytes const
    6635 bytes flash

Creating intel-hex file
Time: 00:06:141
D:\Work_OS5x\Projects\OS\CM0_FL>
</pre>

Terry Guo (terry.guo) wrote :

Issue is confirmed. Probably because we use new mingw build environment to produce windows tool chain. I am looking into it. Thanks for reporting.

Changed in gcc-arm-embedded:
status: New → Confirmed
importance: Undecided → Critical
assignee: nobody → Terry Guo (terry.guo)
Terry Guo (terry.guo) on 2014-03-29
Changed in gcc-arm-embedded:
milestone: none → 4.8-2014-q2-update
Terry Guo (terry.guo) wrote :

To support wildcard, we need to configure mingw runtime library with option --enable-wildcard during the setup of mingw build environment. By default it is disabled. The 4.8 Q2 update release should fix this issue.

For the time being, this issue can be workaround by following steps:

1) add below line right before the gcc link command to save all object file names into a file.
for %i in (Obj\*.o) do @echo Obj\\%~nxi >> f.list

2) now execute normal gcc link command like below:
arm-none-eabi-gcc YOUR-OPTIONS @f.list

3) remove the a.list file.

Another simple way is to replace Obj\*.o with actual file names. Those are all that I can conceive. Sorry for the inconveniences caused by this bug.

Terry Guo (terry.guo) on 2014-06-13
Changed in gcc-arm-embedded:
status: Confirmed → Fix Released
Dan Alec (danalec) wrote :

GNU ARM Embedded Toolchain 5.4-2016-q3-update

tested with gcc-arm-none-eabi-5_4-2016q3-20160926-win32

It seems *.o wildcard for linking is no longer supported in 2016q3:

arm-none-eabi-gcc.exe: error: *.o: Invalid argument

Pietro Palazzo (pietro-palazzo) wrote :

I'm sorry but we can't reproduce this bug. Can you double check the version you are using?

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers