Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1707421 > unrolled thread
| Started by | Arnd Bergmann <arnd@arndb.de> |
|---|---|
| First post | 2017-08-09 17:40 +0200 |
| Last post | 2017-08-09 17:50 +0200 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: drivers/tty/serial/8250/8250_fintek.c:364: warning: 'probe_data' is used uninitialized in this function Arnd Bergmann <arnd@arndb.de> - 2017-08-09 17:40 +0200
Re: drivers/tty/serial/8250/8250_fintek.c:364: warning: 'probe_data' is used uninitialized in this function Daniel Micay <danielmicay@gmail.com> - 2017-08-09 17:50 +0200
| From | Arnd Bergmann <arnd@arndb.de> |
|---|---|
| Date | 2017-08-09 17:40 +0200 |
| Subject | Re: drivers/tty/serial/8250/8250_fintek.c:364: warning: 'probe_data' is used uninitialized in this function |
| Message-ID | <ucBfs-Mz-23@gated-at.bofh.it> |
On Wed, Aug 9, 2017 at 5:07 PM, kbuild test robot
<fengguang.wu@intel.com> wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: bfa738cf3dfae2111626650f86135f93c5ff0a22
> commit: 6974f0c4555e285ab217cee58b6e874f776ff409 include/linux/string.h: add the option of fortified string.h functions
> date: 4 weeks ago
> config: x86_64-randconfig-v0-08092220 (attached as .config)
> compiler: gcc-4.4 (Debian 4.4.7-8) 4.4.7
> reproduce:
> git checkout 6974f0c4555e285ab217cee58b6e874f776ff409
> # save the attached .config to linux build tree
> make ARCH=x86_64
>
> All warnings (new ones prefixed by >>):
>
> In file included from include/linux/bitmap.h:8,
> from include/linux/cpumask.h:11,
> from arch/x86/include/asm/cpumask.h:4,
> from arch/x86/include/asm/msr.h:10,
> from arch/x86/include/asm/processor.h:20,
> from arch/x86/include/asm/cpufeature.h:4,
> from arch/x86/include/asm/thread_info.h:52,
> from include/linux/thread_info.h:37,
> from arch/x86/include/asm/preempt.h:6,
> from include/linux/preempt.h:80,
> from include/linux/spinlock.h:50,
> from include/linux/seqlock.h:35,
> from include/linux/time.h:5,
> from include/linux/stat.h:18,
> from include/linux/module.h:10,
> from drivers/tty/serial/8250/8250_fintek.c:11:
> include/linux/string.h: In function 'strcpy':
> include/linux/string.h:209: warning: '______f' is static but declared in inline function 'strcpy' which is not static
> include/linux/string.h:211: warning: '______f' is static but declared in inline function 'strcpy' which is not static
This clearly comes from __trace_if() when CONFIG_PROFILE_ALL_BRANCHES
is enabled. I did not see the warning with gcc-7.1.1, and I guess this only
happens on older compilers like the gcc-4.4 that was used here.
What is the reason for __FORTIFY_INLINE to be "extern __always_inline"
rather than "static __always_inline"? If they cannot just be 'static', maybe
this can be changed to depend on the compiler version.
Arnd
[toc] | [next] | [standalone]
| From | Daniel Micay <danielmicay@gmail.com> |
|---|---|
| Date | 2017-08-09 17:50 +0200 |
| Subject | Re: drivers/tty/serial/8250/8250_fintek.c:364: warning: 'probe_data' is used uninitialized in this function |
| Message-ID | <ucBp8-PO-19@gated-at.bofh.it> |
| In reply to | #1707421 |
On Wed, 2017-08-09 at 17:32 +0200, Arnd Bergmann wrote: > On Wed, Aug 9, 2017 at 5:07 PM, kbuild test robot > <fengguang.wu@intel.com> wrote: > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin > > ux.git master > > head: bfa738cf3dfae2111626650f86135f93c5ff0a22 > > commit: 6974f0c4555e285ab217cee58b6e874f776ff409 > > include/linux/string.h: add the option of fortified string.h > > functions > > date: 4 weeks ago > > config: x86_64-randconfig-v0-08092220 (attached as .config) > > compiler: gcc-4.4 (Debian 4.4.7-8) 4.4.7 > > reproduce: > > git checkout 6974f0c4555e285ab217cee58b6e874f776ff409 > > # save the attached .config to linux build tree > > make ARCH=x86_64 > > > > All warnings (new ones prefixed by >>): > > > > In file included from include/linux/bitmap.h:8, > > from include/linux/cpumask.h:11, > > from arch/x86/include/asm/cpumask.h:4, > > from arch/x86/include/asm/msr.h:10, > > from arch/x86/include/asm/processor.h:20, > > from arch/x86/include/asm/cpufeature.h:4, > > from arch/x86/include/asm/thread_info.h:52, > > from include/linux/thread_info.h:37, > > from arch/x86/include/asm/preempt.h:6, > > from include/linux/preempt.h:80, > > from include/linux/spinlock.h:50, > > from include/linux/seqlock.h:35, > > from include/linux/time.h:5, > > from include/linux/stat.h:18, > > from include/linux/module.h:10, > > from drivers/tty/serial/8250/8250_fintek.c:11: > > include/linux/string.h: In function 'strcpy': > > include/linux/string.h:209: warning: '______f' is static but > > declared in inline function 'strcpy' which is not static > > include/linux/string.h:211: warning: '______f' is static but > > declared in inline function 'strcpy' which is not static > > > This clearly comes from __trace_if() when CONFIG_PROFILE_ALL_BRANCHES > is enabled. I did not see the warning with gcc-7.1.1, and I guess this > only > happens on older compilers like the gcc-4.4 that was used here. > > What is the reason for __FORTIFY_INLINE to be "extern __always_inline" > rather than "static __always_inline"? If they cannot just be 'static', > maybe > this can be changed to depend on the compiler version. > > Arnd It's important to get the semantics of using extern. It means if you do something like &memcpy, it resolves to the address of the direct symbol instead of generating a useless thunk for that object file. It might also be required for Clang compatibility, I don't remember. It could have a compiler version dependency or maybe one specifically tied to old compiler && CONFIG_PROFILE_ALL_BRANCHES / other options that conflict with it like that.
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web