All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: Cao Ruichuang <create0818@163.com>
Cc: linux-trace-devel@vger.kernel.org,
	Tzvetomir Stoyanov <tz.stoyanov@gmail.com>
Subject: Re: [PATCH v3] libtraceevent: avoid racing recursive builds of both libraries
Date: Mon, 1 Jun 2026 10:03:31 -0400	[thread overview]
Message-ID: <20260601100331.79939cf5@fedora> (raw)
In-Reply-To: <20260601082024.12269-1-create0818@163.com>

On Mon,  1 Jun 2026 16:20:24 +0800
Cao Ruichuang <create0818@163.com> wrote:

> A top-level parallel build currently starts separate recursive makes for
> libtraceevent.a and libtraceevent.so. Both sub-makes rebuild the same
> object files in the same output directory, which can corrupt the .o files
> and make the final link fail with file format errors.
> 
> The src/Makefile already has the static library depend on the shared
> library before running objcopy. Reflect that dependency at the top level
> too by also making the static library target depend on the shared library
> target. This serializes parallel top-level requests for both libraries
> while preserving the shared-before-static build order and the existing
> forced static-library recursive make.
> 
> This fixes the object-file race seen when top-level parallel builds
> request both libraries, for example via `make -j8 libs` or
> `make -j8 libtraceevent.a libtraceevent.so`.
> 
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=217428
> Assisted-by: Codex:gpt-5.5
> Signed-off-by: Cao Ruichuang <create0818@163.com>

Thanks for the updates.

For future version updates, please start a new email thread and do not
reply to the old one. It makes it easier to manage for maintainers.

Also, the tracing code uses capital letters to start subjects:

  [PATCH v3] libtraceevent: Avoid racing recursive builds of both libraries

> ---
> Changes in v3:

In order to still keep the trail of versions, you can use lore with the
Message-ID of the previous email version:

Changes since v2: https://lore.kernel.org/all/20260406062855.58598-1-create0818@163.com/

If all looks good, I'll go ahead and apply your patches.

Thanks again,

-- Steve

> - Follow Steven's review and make the top-level static library target
>   depend on the shared library target, matching src/Makefile's dependency
>   direction.
> - Preserve the existing forced static-library recursive make while
>   serializing parallel top-level requests shared-before-static.
> 
> Tested on x86_64 Linux with GNU Make 4.3, GCC 11.5.0, and GNU objcopy
> 2.35.2:
> - make -j8 libs
> - make -j8 libtraceevent.a libtraceevent.so
> - 20 iterations of: make clean && make -j8 libs
> - 10 iterations of: make clean && make -j8 libtraceevent.a libtraceevent.so
> - make -j8
> - make -j8 test
> 
>  Makefile | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/Makefile b/Makefile
> index e1a10a0..d1ceaee 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -208,7 +208,7 @@ libtraceevent.so: $(bdir) $(LIBTRACEEVENT_SHARED)
>  
>  libs: libtraceevent.a libtraceevent.so
>  
> -$(LIBTRACEEVENT_STATIC): force
> +$(LIBTRACEEVENT_STATIC): force $(LIBTRACEEVENT_SHARED)
>  	$(Q)$(call descend,$(src)/src,$@)
>  
>  $(LIBTRACEEVENT_SHARED): force


      reply	other threads:[~2026-06-01 14:03 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-05 22:21 [PATCH] libtraceevent: avoid racing recursive builds of both libraries CaoRuichuang
2026-04-06  6:28 ` [PATCH v2] " CaoRuichuang
2026-05-29 18:07   ` Steven Rostedt
2026-06-01  8:20     ` [PATCH v3] " Cao Ruichuang
2026-06-01 14:03       ` Steven Rostedt [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260601100331.79939cf5@fedora \
    --to=rostedt@goodmis.org \
    --cc=create0818@163.com \
    --cc=linux-trace-devel@vger.kernel.org \
    --cc=tz.stoyanov@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.