-
Notifications
You must be signed in to change notification settings - Fork 578
perl-5.24.3, wrong Configure test for IPC_STAT #16297
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
From [email protected]This is a bug report for perl from Joakim.Tjernlund@infinera.com, in perl Configure script there is this test for IPC_STAT: #include <sys/types.h> #if defined(IPC_PRIVATE) && defined(S_IRWXU) && defined(S_IRWXG) && defined(S_IRWXO) && defined(IPC_CREAT) return 0; This fails on ppc32 with: union semun { Now the test works. Flags: Site configuration information for perl 5.24.3: Configured by Gentoo at Fri Oct 13 16:43:19 CEST 2017. Summary of my perl5 (revision 5 version 24 subversion 3) configuration: Locally applied patches: @INC for perl 5.24.3: Environment for perl 5.24.3: |
From @jkeenanOn Sun, 10 Dec 2017 17:19:46 GMT, Joakim.Tjernlund@infinera.com wrote:
I'm having trouble understanding exactly where in Configure you think a correction should be made. Would you be able to do a checkout of the Perl 5 git repository, create a patch to Configure with your corrections and, assuming the patch "works", attach that patch to this ticket? [Note to metaconfig team: I *think* this pertains to approx. line 190 in U/modified/d_union_semun.U.] Thank you very much.
-- |
The RT System itself - Status changed from 'new' to 'open' |
From [email protected]On Mon, 2017-12-11 at 16:43 -0800, James E Keenan via RT wrote:
Me too, I just snagged the try.c files and worked from there.
Sorry, not any easier for me, not even knowing anything about perl internal build system.
|
From [email protected]On Wed, 2017-12-13 at 16:23 +0100, Joakim Tjernlund wrote:
Ping?
|
From [email protected]On Mon, 2017-12-18 at 23:38 +0100, Joakim Tjernlund wrote:
Gentle ping ..
|
From @TuxAdded James and Leon to To: as my mails do not seem to arrive in p5p On Sun, 10 Dec 2017 09:19:47 -0800, (via RT) <perlbug-followup@perl.org> wrote:
That is unit U/modified/d_union_semun.U, which you can find here:
If I read the rest of the unit, combined with your rem,arks, that makes --8<--- Inline Patchdiff --git a/U/modified/d_union_semun.U b/U/modified/d_union_semun.U
index 55f224f..6ddad1a 100644
--- a/U/modified/d_union_semun.U
+++ b/U/modified/d_union_semun.U
@@ -184,21 +184,31 @@ END
extern int errno;
#endif
int main() {
- struct semid_ds arg;
+ union semun
+#ifndef HAS_UNION_SEMUN
+ {
+ int val;
+ struct semid_ds *buf;
+ unsigned short *array;
+ }
+#endif
+ arg;
+ struct semid_ds argbuf;
int sem, st;
#if defined(IPC_PRIVATE) && defined(S_IRWXU) && defined(S_IRWXG) && defined(S_IRWXO) && defined(IPC_CREAT)
sem = semget(IPC_PRIVATE, 1, S_IRWXU|S_IRWXG|S_IRWXO|IPC_CREAT);
if (sem > -1) {
+ arg.buf = &argbuf;
# ifdef IPC_STAT
- st = semctl(sem, 0, IPC_STAT, &arg);
+ st = semctl(sem, 0, IPC_STAT, arg);
if (st == 0)
printf("semid_ds\n");
else
# endif /* IPC_STAT */
printf("semctl IPC_STAT failed: errno = %d\n", errno);
# ifdef IPC_RMID
- if (semctl(sem, 0, IPC_RMID, &arg) != 0)
+ if (semctl(sem, 0, IPC_RMID, arg) != 0)
# endif /* IPC_RMID */
printf("semctl IPC_RMID failed: errno = %d\n", errno);
} else
-->8---
-- |
From @Tuxd_union_semun.U.diffdiff --git a/U/modified/d_union_semun.U b/U/modified/d_union_semun.U
index 55f224f..6ddad1a 100644
--- a/U/modified/d_union_semun.U
+++ b/U/modified/d_union_semun.U
@@ -184,21 +184,31 @@ END
extern int errno;
#endif
int main() {
- struct semid_ds arg;
+ union semun
+#ifndef HAS_UNION_SEMUN
+ {
+ int val;
+ struct semid_ds *buf;
+ unsigned short *array;
+ }
+#endif
+ arg;
+ struct semid_ds argbuf;
int sem, st;
#if defined(IPC_PRIVATE) && defined(S_IRWXU) && defined(S_IRWXG) && defined(S_IRWXO) && defined(IPC_CREAT)
sem = semget(IPC_PRIVATE, 1, S_IRWXU|S_IRWXG|S_IRWXO|IPC_CREAT);
if (sem > -1) {
+ arg.buf = &argbuf;
# ifdef IPC_STAT
- st = semctl(sem, 0, IPC_STAT, &arg);
+ st = semctl(sem, 0, IPC_STAT, arg);
if (st == 0)
printf("semid_ds\n");
else
# endif /* IPC_STAT */
printf("semctl IPC_STAT failed: errno = %d\n", errno);
# ifdef IPC_RMID
- if (semctl(sem, 0, IPC_RMID, &arg) != 0)
+ if (semctl(sem, 0, IPC_RMID, arg) != 0)
# endif /* IPC_RMID */
printf("semctl IPC_RMID failed: errno = %d\n", errno);
} else
|
From @TuxKarl, finally an update from me :) On Thu, 29 Mar 2018 16:23:10 +0200, "H.Merijn Brand" <h.m.brand@xs4all.nl> wrote:
Ping? As this is the last hurdle before Configure is back to sync again with If I commit this, Karl can continue with his LANGINFO work
-- |
From @LeontOn Thu, Mar 29, 2018 at 4:23 PM, H.Merijn Brand <h.m.brand@xs4all.nl> wrote:
Yeah, this looks sensible, as far as anything dealing with semctl can Leon |
@arc - Status changed from 'open' to 'pending release' |
From @khwilliamsonThank you for filing this report. You have helped make Perl better. With the release yesterday of Perl 5.28.0, this and 185 other issues have been Perl 5.28.0 may be downloaded via: If you find that the problem persists, feel free to reopen this ticket. |
@khwilliamson - Status changed from 'pending release' to 'resolved' |
Migrated from rt.perl.org#132560 (status was 'resolved')
Searchable as RT132560$
The text was updated successfully, but these errors were encountered: