[dpdk-dev] [PATCH v2 00/10] experimental tags fixes

Ferruh Yigit ferruh.yigit at intel.com
Mon Jul 1 23:12:53 CEST 2019


On 7/1/2019 8:27 PM, David Marchand wrote:
> 
> 
> On Mon, Jul 1, 2019 at 5:30 PM Ferruh Yigit <ferruh.yigit at intel.com
> <mailto:ferruh.yigit at intel.com>> wrote:
> 
>     On 7/1/2019 3:36 PM, David Marchand wrote:
>     >
>     >
>     > On Mon, Jul 1, 2019 at 4:15 PM Ferruh Yigit <ferruh.yigit at intel.com
>     <mailto:ferruh.yigit at intel.com>
>     > <mailto:ferruh.yigit at intel.com <mailto:ferruh.yigit at intel.com>>> wrote:
>     >
>     >     On 6/29/2019 6:06 PM, Thomas Monjalon wrote:
>     >     > 29/06/2019 13:58, David Marchand:
>     >     >> Following the build error reported by Aaron [1], I noticed that some
>     >     >> experimental functions could go unnoticed because of a gcc peculiarity.
>     >     >>
>     >     >> To catch those, I went and added a new check on the object files to
>     >     >> ensure that any experimental api flagged in the map files is really
>     >     >> exported as such.
>     >     >>
>     >     >> Then went with my previous idea of only adding the tags on the
>     functions
>     >     >> prototypes and enforcing it (a new check in checkpatches.sh).
>     >     >> And finally enforcing that the __rte_experimental tag is always the
>     first
>     >     >> part of a function prototype which seems to work with both gcc and
>     clang.
>     >     >
>     >     > Applied, thanks
>     >     >
>     >
>     >
>     >     Getting an odd build error with "i686-native-linuxapp-icc" [1].
>     >     Beware of the "." at the end: "rte_flow_conv."
>     >
>     >     Objdump shows two symbols with one "." at the end and one without it [2].
>     >
>     >     And this seems not the problem of only experimental APIs [3]. But this
>     is only
>     >     happening with "i686-native-linuxapp-icc".
>     >
>     >     Do you have any idea what is going on here?
>     >
>     >
>     > Looked at rte_flow_conv, and I can not see anything special about it.
>     >
>     > There might be a subtility in the way symbol names are chosen by ICC.
>     > Can ICC guys look at this and give us some enlightment?
> 
>     This is the sample disassembler of one of the "." functions [1], it looks like
>     this notation is used by compiler to prepend some code at the very begging of
>     the function, Harry (cc'ed) let me know this is may be security feature, not a
>     defect of compiler :)
> 
>     So briefly, it looks like compiler can add this "." version of the symbols to
>     the ".text.experimental" section, I believe the solution is detect this notation
>     and handle it. What do you think?
> 
> 
> Iiuc, we would skip the symbols finishing with a '.', is this all?
> 

yes


More information about the dev mailing list