From: Pip Cet via "Emacs development discussions." <emacs-devel@gnu.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: Paul Eggert <eggert@cs.ucla.edu>,
gerd.moellmann@gmail.com, emacs-devel@gnu.org
Subject: Re: pdumper on Solaris 10
Date: Sun, 15 Dec 2024 12:09:33 +0000 [thread overview]
Message-ID: <87h675du7m.fsf@protonmail.com> (raw)
In-Reply-To: <86a5cxryfp.fsf@gnu.org>
"Eli Zaretskii" <eliz@gnu.org> writes:
>> Date: Sun, 15 Dec 2024 10:55:49 +0000
>> From: Pip Cet <pipcet@protonmail.com>
>> Cc: gerd.moellmann@gmail.com, emacs-devel@gnu.org
>>
>> "Eli Zaretskii" <eliz@gnu.org> writes:
>>
>> > CC igc.o
>> > igc.c: In function 'weak_hash_table_entry':
>> > igc.c:4102:16: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>> > 4102 | client = (mps_addr_t)entry.intptr;
>> > | ^
>> > igc.c:4107:16: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>> > 4107 | client = (mps_addr_t)real_ptr;
>> > | ^
>> >
>> > The warnings are real, because mps_addr_t is a 'void *', so a 32-bit
>> > data type, whereas entry.intptr is EMACS_UINT, so an unsigned 64-bit
>> > type.
>>
>> Oh, sorry for causing those.
>>
>> The intended behavior is to truncate the integer and use the 32 LSB
>> bits, which is safe on the machines MPS is ported to, and is expressed
>> using a cast to mps_addr_t. So the code behaves correctly, but is
>> incorrect because it causes a compiler warning.
>
> What about the (hypothetical) case of big-endian systems?
Not a problem here, but there is some good news concerning the
"hypothetical" part: I'm testing 32-bit builds on a sparc system, so
it's no longer hypothetical (thanks again to the cfarm people for giving
me an account).
The bad news is that while MPS works when Emacs is run normally in a
non-wide-int build, running Emacs in GDB does not work: the siginfo_t
information passed to the SIGSEGV handler isn't preserved. Currently,
the --with-wide-int build infloops rather than crashing or working, but
I can't attach a debugger, so I'll have to learn how to trigger (and
find) a core dump on this system.
It's possible this problem is an unavoidable vicious cycle: since
small integers are easily confused with pointers on this system, more
objects are "ambiguously" recognized as reachable even though they
aren't actually reachable; that causes more objects to be retained,
which causes more integer values to be treated as potential pointers,
resulting in even more retained objects, until finally we run out of
virtual memory. At least that would explain the 2 GB core file...
>> What's the preferred way of avoiding a compiler warning in this case?
>> A simple double cast (first to uintptr_t, then to mps_addr_t) should
>> work, right?
>
> I'll defer to Paul (CC'ed), but my personal preference is also to
> explicitly reset the ignored bits by bitwise AND.
Either way sounds good to me, and I expect both ways will result in
future compiler warnings (hopefully, these future compilers will also
have a better way of indicating that a cast from a 64-bit integer to a
32-bit pointer is intended here).
>> > However, profiling doesn't work, whereas it did
>> > in the "normal" 32-bit build. (Note that SIGPROF is emulated on
>> > Windows, so maybe that emulation somehow causes this problem when wide
>> > ints are used with MPS.)
>>
>> Thanks for letting me know! That certainly sounds like a regression we
>> should fix. What kind of problem are we talking about?
> However, I repeated the test now, and I see that the profile does
> work. I guess yesterday wins my personal record of producing
> irreproducible results: this one and the one with
> completion-at-point-functions in another discussion.
>
> Sorry for the noise.
No problem at all, and thank you!
Pip
next prev parent reply other threads:[~2024-12-15 12:09 UTC|newest]
Thread overview: 146+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <mailman.39.1723910423.12184.emacs-devel@gnu.org>
2024-08-17 22:49 ` Emacs-devel Digest, Vol 246, Issue 17 ali_gnu2
2024-08-18 0:10 ` Po Lu
2024-08-18 0:19 ` Po Lu
2024-08-18 1:15 ` Solaris dldump (was: Pure space) ali_gnu2
2024-08-18 1:25 ` Solaris dldump Po Lu
2024-08-18 22:27 ` Stefan Kangas
2024-08-18 23:56 ` Po Lu
2024-08-19 11:18 ` Eli Zaretskii
2024-08-19 12:09 ` Po Lu
2024-08-19 12:50 ` Eli Zaretskii
2024-08-19 11:44 ` Pip Cet
2024-08-19 11:57 ` Po Lu
2024-08-19 12:10 ` Pip Cet
2024-08-19 12:55 ` Eli Zaretskii
2024-08-19 13:46 ` Pip Cet
2024-08-19 14:39 ` Eli Zaretskii
2024-08-19 15:26 ` Corwin Brust
2024-08-19 15:31 ` Corwin Brust
2024-08-19 20:51 ` Stefan Kangas
2024-08-19 20:35 ` Stefan Kangas
2024-12-08 12:17 ` pdumper on Solaris 10 Pip Cet via Emacs development discussions.
2024-12-08 13:05 ` Eli Zaretskii
2024-12-08 13:52 ` Pip Cet via Emacs development discussions.
2024-12-08 14:52 ` Eli Zaretskii
2024-12-08 16:17 ` Pip Cet via Emacs development discussions.
2024-12-08 16:49 ` Eli Zaretskii
2024-12-08 17:37 ` Pip Cet via Emacs development discussions.
2024-12-08 18:41 ` Eli Zaretskii
2024-12-08 19:15 ` Gerd Möllmann
2024-12-08 20:38 ` Eli Zaretskii
2024-12-09 3:09 ` Gerd Möllmann
2024-12-09 3:32 ` Eli Zaretskii
2024-12-09 3:43 ` Gerd Möllmann
2024-12-09 4:53 ` Stefan Kangas
2024-12-09 5:26 ` Gerd Möllmann
2024-12-09 13:58 ` Eli Zaretskii
2024-12-10 0:02 ` Po Lu
2024-12-09 9:56 ` Pip Cet via Emacs development discussions.
2024-12-10 0:04 ` Po Lu
2024-12-10 3:34 ` Eli Zaretskii
2024-12-11 1:13 ` Po Lu
2024-12-11 11:29 ` Pip Cet via Emacs development discussions.
2024-12-09 4:59 ` Stefan Kangas
2024-12-09 14:39 ` Eli Zaretskii
2024-12-09 21:06 ` Merging MPS a.k.a. scratch/igc, yet again Stefan Kangas
2024-12-09 21:49 ` Óscar Fuentes
2024-12-10 4:17 ` Xiyue Deng
2024-12-10 4:26 ` Sean Whitton
2024-12-10 4:42 ` chad
2024-12-10 13:10 ` Óscar Fuentes
2024-12-10 15:10 ` Pip Cet via Emacs development discussions.
2024-12-10 15:37 ` Óscar Fuentes
2024-12-10 15:47 ` Pip Cet via Emacs development discussions.
2024-12-10 17:16 ` Eli Zaretskii
2024-12-12 4:37 ` Xiyue Deng
2024-12-19 16:02 ` Gregor Zattler
2024-12-19 17:32 ` Pip Cet via Emacs development discussions.
2024-12-19 18:12 ` Gerd Möllmann
2024-12-19 18:27 ` Eli Zaretskii
2024-12-19 18:39 ` Gerd Möllmann
2024-12-19 19:15 ` Pip Cet via Emacs development discussions.
2024-12-19 19:57 ` Gerd Möllmann
2024-12-20 6:39 ` Eli Zaretskii
2024-12-20 9:27 ` Gregor Zattler
2024-12-10 13:20 ` Eli Zaretskii
2024-12-10 14:46 ` Pip Cet via Emacs development discussions.
2024-12-10 13:09 ` Eli Zaretskii
2024-12-10 13:20 ` Óscar Fuentes
2024-12-10 14:41 ` Eli Zaretskii
2024-12-09 23:13 ` chad
2024-12-10 12:41 ` Eli Zaretskii
2024-12-10 0:09 ` pdumper on Solaris 10 Stefan Kangas
2024-12-10 12:59 ` Eli Zaretskii
2024-12-10 13:39 ` Óscar Fuentes
2024-12-10 14:39 ` Eli Zaretskii
2024-12-10 15:21 ` Óscar Fuentes
2024-12-10 16:39 ` Eli Zaretskii
2024-12-10 15:38 ` Pip Cet via Emacs development discussions.
2024-12-10 16:04 ` Óscar Fuentes
2024-12-10 17:23 ` Eli Zaretskii
2024-12-11 5:27 ` Gap buffer problem? Gerd Möllmann
2024-12-11 8:50 ` Pip Cet via Emacs development discussions.
2024-12-11 9:35 ` Gerd Möllmann
2024-12-11 11:50 ` Pip Cet via Emacs development discussions.
2024-12-11 13:22 ` Gerd Möllmann
2024-12-11 14:53 ` Pip Cet via Emacs development discussions.
2024-12-11 15:33 ` Gerd Möllmann
2024-12-11 16:58 ` Eli Zaretskii
2024-12-11 17:13 ` Gerd Möllmann
2024-12-11 17:45 ` Robert Pluim
2024-12-11 18:11 ` Gerd Möllmann
2024-12-11 19:08 ` Eli Zaretskii
2024-12-11 17:41 ` Pip Cet via Emacs development discussions.
2024-12-11 19:04 ` Eli Zaretskii
2024-12-11 19:54 ` Pip Cet via Emacs development discussions.
2024-12-11 20:26 ` Eli Zaretskii
2024-12-11 22:07 ` Dmitry Gutov
2024-12-11 19:09 ` Gerd Möllmann
2024-12-12 8:55 ` Robert Pluim
2024-12-12 10:14 ` Gerd Möllmann
2024-12-11 12:27 ` Pip Cet via Emacs development discussions.
2024-12-11 13:27 ` Gerd Möllmann
2024-12-11 15:06 ` Marcus Harnisch
2024-12-11 22:11 ` Dmitry Gutov
2024-12-12 3:49 ` Gerd Möllmann
2024-12-12 19:07 ` Dmitry Gutov
2024-12-12 19:30 ` Eli Zaretskii
2024-12-12 19:40 ` Gerd Möllmann
2024-12-12 6:01 ` Eli Zaretskii
2024-12-11 14:22 ` Eli Zaretskii
2024-12-11 15:51 ` Gerd Möllmann
2024-12-11 17:06 ` Eli Zaretskii
2024-12-11 17:15 ` Gerd Möllmann
2024-12-10 18:13 ` pdumper on Solaris 10 Gerd Möllmann
2024-12-10 15:23 ` Pip Cet via Emacs development discussions.
2024-12-10 17:08 ` Eli Zaretskii
2024-12-10 18:03 ` Gerd Möllmann
2024-12-10 19:34 ` Pip Cet via Emacs development discussions.
2024-12-10 19:59 ` Gerd Möllmann
2024-12-10 20:17 ` Pip Cet via Emacs development discussions.
2024-12-10 20:34 ` Gerd Möllmann
2024-12-11 14:13 ` Pip Cet via Emacs development discussions.
2024-12-11 17:43 ` Eli Zaretskii
2024-12-14 14:30 ` Eli Zaretskii
2024-12-15 10:55 ` Pip Cet via Emacs development discussions.
2024-12-15 11:13 ` Eli Zaretskii
2024-12-15 12:09 ` Pip Cet via Emacs development discussions. [this message]
2024-12-15 12:52 ` Eli Zaretskii
2024-12-15 19:54 ` John ff
2024-12-17 19:10 ` Paul Eggert
2024-12-17 19:43 ` Pip Cet via Emacs development discussions.
2024-12-17 20:00 ` Paul Eggert
2024-12-17 20:19 ` Eli Zaretskii
2024-12-17 21:14 ` Paul Eggert
2024-12-09 16:21 ` Pip Cet via Emacs development discussions.
2024-12-17 13:12 ` Pip Cet via Emacs development discussions.
2024-12-17 14:16 ` Eli Zaretskii
2024-12-18 0:55 ` Po Lu
2024-12-18 9:24 ` Pip Cet via Emacs development discussions.
2024-12-08 18:47 ` Pip Cet via Emacs development discussions.
2024-12-09 1:13 ` Po Lu
2024-12-09 1:08 ` Po Lu
2024-12-09 0:58 ` Po Lu
2024-12-09 3:28 ` Eli Zaretskii
2024-12-09 1:01 ` Po Lu
2024-12-09 13:11 ` Pip Cet via Emacs development discussions.
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=87h675du7m.fsf@protonmail.com \
--to=emacs-devel@gnu.org \
--cc=eggert@cs.ucla.edu \
--cc=eliz@gnu.org \
--cc=gerd.moellmann@gmail.com \
--cc=pipcet@protonmail.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.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
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.