Wildcards no longer supported?

Bug #1298958 reported by Leo Havmøller
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
GNU Arm Embedded Toolchain
Fix Released
Critical
Terry Guo
4.8
Fix Released
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>

Revision history for this message
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)
Changed in gcc-arm-embedded:
milestone: none → 4.8-2014-q2-update
Revision history for this message
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)
Changed in gcc-arm-embedded:
status: Confirmed → Fix Released
Revision history for this message
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

Revision history for this message
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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.