[dpdk-dev] Compiling files with .S with GCC

Wiles, Keith keith.wiles at intel.com
Sun Apr 26 18:55:00 CEST 2015



On 4/26/15, 11:53 AM, "Wiles, Keith" <keith.wiles at intel.com> wrote:

>Hi All,
>
>I noticed in my builds with foo.S file I would get a warning from the
>compiler the foo_s.o.tmp linker file will not be used as the code is not
>linked. A strange error and the foo_s.o file would not be created. In the
>mk/internal/rte.compile-pre.mk we have the following
>
># command to assemble a .S file to generate an object
>ifeq ($(USE_HOST),1)
>S_TO_O = $(CPP) $(HOST_CPPFLAGS) $($(@)_CPPFLAGS) $(HOST_EXTRA_CPPFLAGS)
>$< $(@).tmp && \
>    $(HOSTAS) $(HOST_ASFLAGS) $($(@)_ASFLAGS) $(HOST_EXTRA_ASFLAGS) -o $@
>$(@).tmp
>S_TO_O_STR = $(subst ','\'',$(S_TO_O)) #'# fix syntax highlight
>S_TO_O_DISP =  $(if $(V),"$(S_TO_O_STR)","  HOSTAS $(@)")
>else
>S_TO_O = $(CPP) $(CPPFLAGS) $($(@)_CPPFLAGS) $(EXTRA_CPPFLAGS) $< -o
>$(@).tmp && \
>    $(AS) $(ASFLAGS) $($(@)_ASFLAGS) $(EXTRA_ASFLAGS) -o $@ $(@).tmp
>S_TO_O_STR = $(subst ','\'',$(S_TO_O)) #'# fix syntax highlight
>S_TO_O_DISP =  $(if $(V),"$(S_TO_O_STR)","  AS $(@)")
>endif
>
>I had to change the above Œ.tmp¹ strings to Œ.s¹ to remove this warning
>and get the foo_s.o file created. Using the .s the file name becomes
>foo_s.o.s

Compiler used on Ubuntu 14.04 'gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2'

>
>Did not try this with clang or any other compiler, but I expect we can
>safely change the Œ.tmp¹ to Œ.s¹ IMO
>
>Anyone else notice this problem?
>
>Regards,
>++Keith
>



More information about the dev mailing list