From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-x42a.google.com (mail-pf1-x42a.google.com [IPv6:2607:f8b0:4864:20::42a]) by sourceware.org (Postfix) with ESMTPS id 88456385E457 for ; Sat, 9 Mar 2024 10:31:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 88456385E457 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 88456385E457 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::42a ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709980313; cv=none; b=KwtvDM4ksUdWPoYrQCAQpWO6BYfNyuUlBjNgg6CVK9HHneauuv8P0aPgD5NkSsVC0WjgdyE1MkDVAfdwp8j4CgwpWqqc+ttnkC+uHSU1dYlQoFPC+Onhmydm/xmzDjoZY/pWqlOZbo/X/tf9UzuBRvdYn3OI58l3NUd6RumClqM= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709980313; c=relaxed/simple; bh=lu5r+fZ2j+nYr2nO+7lxrAEObvwXpgVrbobD/B9ctSg=; h=DKIM-Signature:Date:From:To:Subject:Message-ID:MIME-Version; b=f97Dn47GiDCJQQ/vaXzpT5RTkEmP+v4HwPdnPgWjRkx5ww8Wj70gDgs1ozKxvVG6Beup6BSF3/PnSYGKGQIzLJAs8ojImDzSn3S1tFPZabmy21jnPqBGd8VfaqedL7WdMI1PmkPG+SQeNNEVJTRw+9eas4xrqM1JPAoZNuuLObE= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pf1-x42a.google.com with SMTP id d2e1a72fcca58-6e5dddd3b95so2115375b3a.1 for ; Sat, 09 Mar 2024 02:31:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1709980310; x=1710585110; darn=sourceware.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=90y+27qCHZH20tfvV66NvNJdp1/9879okPyWLfrzvyg=; b=B9/kpI85aU/Tp1Egn36pVfSiQvpfqkeQNvpZnQz3J1c/HrLUvN3hVFmiQr0DjMQYsL y67r/BFfrjUuFboAMqlU+bhXGB5Ce8YqvN6EWiWX+AOPGVRkO9ViYxWLhrZE+pAg61L2 Ohs3nvSLMS9wpurvYgUD3ksveuaPWQcAgoGmjxX0N3C5pCMhUsfiCX5M7XqUuE+eui7j u3UI+Cs8l1gm6oHUUFPTji0roYIFg9UJnhOQBZAcdShnR5VWwMPWlFYZL6kTTRMPPSYH 4DtV/gqchfIzUM768QeB6lfoHvAb9rSAL7xLA4wU1OjvLUMvyoNpJbn4IXrq3o7thDm0 X+1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709980310; x=1710585110; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=90y+27qCHZH20tfvV66NvNJdp1/9879okPyWLfrzvyg=; b=PUM8YreXDSbkTq4NlE4Avay2sxs5ZVT+lZ+dmcl5y42jGvRAPSGLFG5srKd4wPX+f0 wrKZJ7lidQGKwXssFlX8adPQuSkSBNI1x9qc5hUDGH4VXhy2M65Wj2m/u0fKACoxTIiP 8I+h6UjA4TUN7qeEUHiQEX/HpuMFLU5tnQx+V8uYbf0euYpIWwSaP1sVT06oWJ3UwG6/ oVlvWCQI5zBnUYC+eX+lYRdZP1+2JNSENsX+i1XCkPzVVKzeGOewJBsZsGzGXI+BIa6v mifPSkCLGyX25wHk1/gd5F3z7LfExO/IEdfEDQZy91oNkQXchhNSMytH8a0eAsPIU03m 1LIQ== X-Gm-Message-State: AOJu0YxsslzlK/8lk3AZ06cDFziezYswJRyBxpqyfbq0S9cA/g27dSEm efyTjDsHon6kO287HkhYarnrkeEllVDSXWfALdYB/H5OayNzP127Vr0kMJ1J X-Google-Smtp-Source: AGHT+IGtynwBxT4AOaylpsZYBO/RDK/Ws+UBROdWol+h2oOdyFx9ll7Vmor7dcF/V1IlrIMF4Fmeng== X-Received: by 2002:a05:6a00:939a:b0:6e6:2dc9:dcbc with SMTP id ka26-20020a056a00939a00b006e62dc9dcbcmr3709909pfb.10.1709980309562; Sat, 09 Mar 2024 02:31:49 -0800 (PST) Received: from squeak.grove.modra.org (158.106.96.58.static.exetel.com.au. [58.96.106.158]) by smtp.gmail.com with ESMTPSA id fb14-20020a056a002d8e00b006e560192a7dsm997242pfb.105.2024.03.09.02.31.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 09 Mar 2024 02:31:49 -0800 (PST) Received: by squeak.grove.modra.org (Postfix, from userid 1000) id 5CDA411400E4; Sat, 9 Mar 2024 21:01:46 +1030 (ACDT) Date: Sat, 9 Mar 2024 21:01:46 +1030 From: Alan Modra To: Tom Tromey Cc: binutils@sourceware.org Subject: Re: [PATCH 1/3] Make several more BFD globals thread-local Message-ID: References: <20240130010540.1754740-1-tom@tromey.com> <20240130010540.1754740-2-tom@tromey.com> <87sf1xjj62.fsf@tromey.com> <87bk8ljh31.fsf@tromey.com> <87y1asxl6l.fsf@tromey.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Spam-Status: No, score=-3033.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On Sat, Mar 09, 2024 at 02:41:13PM +1030, Alan Modra wrote: > This also fixes a duplicate program name output. > > * bfd.c (bfd_print_error): Make static. Don't print program name. Oops, sorry. I didn't see any uses of bfd_print_error in the sources and didn't check its history. * bfd.c (_bfd_print): Renamed from bfd_print_error. (bfd_print_error): Reinstate previous code but using the above. (error_handler_fprintf, error_handler_sprintf): Adjust. * bfd-in2.h: Regenerate. diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 76d450478a7..79b24a7f6e9 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -2558,6 +2558,9 @@ void bfd_perror (const char *message); typedef void (*bfd_error_handler_type) (const char *, va_list); typedef int (*bfd_print_callback) (void *, const char *, ...); +void bfd_print_error (bfd_print_callback print_func, + void *stream, const char *fmt, va_list ap); + void _bfd_error_handler (const char *fmt, ...) ATTRIBUTE_PRINTF_1; bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type); diff --git a/bfd/bfd.c b/bfd/bfd.c index f40cf941edc..54061a34240 100644 --- a/bfd/bfd.c +++ b/bfd/bfd.c @@ -1450,8 +1450,8 @@ _bfd_doprnt_scan (const char *format, va_list ap, union _bfd_doprnt_args *args) } static void -bfd_print_error (bfd_print_callback print_func, void *stream, - const char *fmt, va_list ap) +_bfd_print (bfd_print_callback print_func, void *stream, + const char *fmt, va_list ap) { union _bfd_doprnt_args args[MAX_ARGS]; @@ -1459,6 +1459,32 @@ bfd_print_error (bfd_print_callback print_func, void *stream, _bfd_doprnt (print_func, stream, fmt, args); } +/* +FUNCTION + bfd_print_error + +SYNOPSIS + void bfd_print_error (bfd_print_callback print_func, + void *stream, const char *fmt, va_list ap); + +DESCRIPTION + + This formats FMT and AP according to BFD "printf" rules, + sending the output to STREAM by repeated calls to PRINT_FUNC. + PRINT_FUNC is a printf-like function; it does not need to + implement the BFD printf format extensions. This can be used + in a callback that is set via bfd_set_error_handler to turn + the error into ordinary output. +*/ + +void +bfd_print_error (bfd_print_callback print_func, void *stream, + const char *fmt, va_list ap) +{ + print_func (stream, "%s: ", _bfd_get_error_program_name ()); + _bfd_print (print_func, stream, fmt, ap); +} + /* The standard error handler that prints to stderr. */ static void @@ -1467,7 +1493,6 @@ error_handler_fprintf (const char *fmt, va_list ap) /* PR 4992: Don't interrupt output being sent to stdout. */ fflush (stdout); - fprintf (stderr, "%s: ", _bfd_get_error_program_name ()); bfd_print_error ((bfd_print_callback) fprintf, stderr, fmt, ap); /* On AIX, putc is implemented as a macro that triggers a -Wunused-value @@ -1526,7 +1551,7 @@ error_handler_sprintf (const char *fmt, va_list ap) error_stream.ptr = error_buf; error_stream.left = sizeof (error_buf); - bfd_print_error (err_sprintf, &error_stream, fmt, ap); + _bfd_print (err_sprintf, &error_stream, fmt, ap); size_t len = error_stream.ptr - error_buf; struct per_xvec_message **warn -- Alan Modra Australia Development Lab, IBM