Re: [PATCH -perfbook 0/6] CodeSamples: Make non-default combinations of cc and -O levels happy

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Jan 05, 2025 at 08:06:38PM +0900, Akira Yokosawa wrote:
> While testing commit f2596972845b ("CodeSamples: Fix liburcu-signal
> support deprecation"), I observed build errors under Ubuntu 22.04.
> 
> Which prompted me to test various combinations of cc and optimization
> levels in building under CodeSamples/.
> 
> This patch set is a collection of fixes/adjustments to make such various
> choices happy.
> 
> Patch 1/6 is a preliminary change for ease of experimenting alternative
> GCC_ARGS such as "-g -Wall -O0", "-g -Wall -O1", and so on, under
> CodeSamples/.
> 
> Patch 2/6 fixes an issue around forward declaration of struct in .h file
> failing to satisfy compiler's assumption of accessing them from inline
> functions.  Looks like this matters with some of gcc versions in low
> level optimization, but gcc of Ubuntu 22.04 hits this even at -O3.
> Actual declaration of a struct seems to be needed in front of inline
> functions who access such a struct.
> 
> Patch 3/6 adjusts indirection level of pointer arguments in xchg().
> 
> Patch 4/6 adds "static" to __inline__ functions.
> 
> Patch 5/6 fixes errors of duplicate symbols due to api.h being included
> in multiple .c files linked together.  As a workaround, "#ifndef SUBOBJ"
> is added in api-pthreads.h and a flag of -DSUBOBJ is added in Makefiles
> to recipes of .c --> _sub.o.
> 
> Patch 6/6 removes variables whose final values are never used.
> Recent clang is pretty strict on set-but-unused variables.
> 
> To test against clang, you need to redirect cc --> clang by, for example,
> symlinking $HOME/bin/cc --> /usr/bin/clang or similar.

Queued and pushed, thank you very much!  And happy perfect-square
new year!

							Thanx, Paul

>         Thanks, Akira
> --
> Akira Yokosawa (6):
>   CodeSamples: Put $(GCC_ARGS) in cc argument list
>   CodeSamples/datastruct: Move struct declaration from .c to .h
>   CodeSamples/advsync: Add explicit type cast in xchg()
>   CodeSamples/count: Add static to __inline__ function declarations
>   CodeSamples: Add #ifndef SUBOBJ to api-pthreads.h
>   CodeSamples/datastruct/Issaquah: Remove unused variables
> 
>  CodeSamples/advsync/q.c                          |  2 +-
>  CodeSamples/advsync/wfenqueue.c                  |  2 +-
>  CodeSamples/api-pthreads/api-pthreads.h          | 14 ++++++++++++++
>  CodeSamples/count/count_end.c                    |  4 ++--
>  CodeSamples/count/count_end_rcu.c                |  4 ++--
>  CodeSamples/count/count_stack.c                  |  6 +++---
>  CodeSamples/count/count_stat_atomic.c            |  6 +++---
>  CodeSamples/datastruct/Issaquah/Makefile         | 14 ++++++++++----
>  CodeSamples/datastruct/Issaquah/existence.c      |  6 ------
>  CodeSamples/datastruct/Issaquah/existence.h      |  7 ++++++-
>  CodeSamples/datastruct/Issaquah/existence_test.c |  3 ---
>  CodeSamples/datastruct/Issaquah/tree.c           |  6 ------
>  CodeSamples/datastruct/hash/Makefile             |  7 +++++--
>  CodeSamples/defer/Makefile                       |  7 +++++--
>  CodeSamples/defer/hazptr.h                       |  6 +++++-
>  CodeSamples/intro/Makefile                       | 12 ++++++------
>  CodeSamples/locking/Makefile                     |  6 +++---
>  17 files changed, 66 insertions(+), 46 deletions(-)
> 
> 
> base-commit: 41e6a800d630336b1d8e614b3d11281e42e880c7
> -- 
> 2.34.1
> 




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux