* [RFA/TESTSUITE] build schedlock.c on 64-bit platforms
@ 2003-04-08 21:16 Elena Zannoni
2003-04-09 13:13 ` Daniel Jacobowitz
0 siblings, 1 reply; 16+ messages in thread
From: Elena Zannoni @ 2003-04-08 21:16 UTC (permalink / raw)
To: gdb-patches
I was getting warnings when compiling the test on 64-bit because of the casts.
/home/ezannoni/gdb-sources/src/gdb/testsuite/gdb.threads/schedlock.c: In function `main':
/home/ezannoni/gdb-sources/src/gdb/testsuite/gdb.threads/schedlock.c:21: warning: cast to pointer from integer of different size
/home/ezannoni/gdb-sources/src/gdb/testsuite/gdb.threads/schedlock.c:26: warning: cast to pointer from integer of different size
/home/ezannoni/gdb-sources/src/gdb/testsuite/gdb.threads/schedlock.c: In function `thread_function':
/home/ezannoni/gdb-sources/src/gdb/testsuite/gdb.threads/schedlock.c:32: warning: cast from pointer to integer of different size
Michael, Daniel?
elena
2003-04-08 Elena Zannoni <ezannoni@redhat.com>
* gdb.threads/schedlock.c: Cast to thread function argument to
long, for 64-bit platforms.
Index: schedlock.c
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.threads/schedlock.c,v
retrieving revision 1.2
diff -u -p -r1.2 schedlock.c
--- schedlock.c 23 Oct 2002 03:22:56 -0000 1.2
+++ schedlock.c 8 Apr 2003 20:56:31 -0000
@@ -18,18 +18,21 @@ int main() {
for (i = 0; i < NUM; i++)
{
args[i] = 1;
- res = pthread_create(&threads[i], NULL, thread_function, (void *)i);
+ res = pthread_create(&threads[i],
+ NULL,
+ thread_function,
+ (void *) (long) i);
}
/* schedlock.exp: last thread start. */
args[i] = 1;
- thread_function ((void *) i);
+ thread_function ((void *) (long) i);
exit(EXIT_SUCCESS);
}
void *thread_function(void *arg) {
- int my_number = (int) arg;
+ int my_number = (long) arg;
int *myp = &args[my_number];
/* Don't run forever. Run just short of it :) */
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFA/TESTSUITE] build schedlock.c on 64-bit platforms
2003-04-08 21:16 [RFA/TESTSUITE] build schedlock.c on 64-bit platforms Elena Zannoni
@ 2003-04-09 13:13 ` Daniel Jacobowitz
2003-04-10 14:08 ` Elena Zannoni
0 siblings, 1 reply; 16+ messages in thread
From: Daniel Jacobowitz @ 2003-04-09 13:13 UTC (permalink / raw)
To: Elena Zannoni; +Cc: gdb-patches
On Tue, Apr 08, 2003 at 05:20:19PM -0400, Elena Zannoni wrote:
>
> I was getting warnings when compiling the test on 64-bit because of the casts.
>
> /home/ezannoni/gdb-sources/src/gdb/testsuite/gdb.threads/schedlock.c: In function `main':
> /home/ezannoni/gdb-sources/src/gdb/testsuite/gdb.threads/schedlock.c:21: warning: cast to pointer from integer of different size
> /home/ezannoni/gdb-sources/src/gdb/testsuite/gdb.threads/schedlock.c:26: warning: cast to pointer from integer of different size
> /home/ezannoni/gdb-sources/src/gdb/testsuite/gdb.threads/schedlock.c: In function `thread_function':
> /home/ezannoni/gdb-sources/src/gdb/testsuite/gdb.threads/schedlock.c:32: warning: cast from pointer to integer of different size
>
>
> Michael, Daniel?
Sigh, I was just sloppy writing this one. Does it work if you pass
&args[i] instead of messing with my_number? That's a little more
portable.
> 2003-04-08 Elena Zannoni <ezannoni@redhat.com>
>
> * gdb.threads/schedlock.c: Cast to thread function argument to
> long, for 64-bit platforms.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFA/TESTSUITE] build schedlock.c on 64-bit platforms
2003-04-09 13:13 ` Daniel Jacobowitz
@ 2003-04-10 14:08 ` Elena Zannoni
2003-04-10 14:19 ` Daniel Jacobowitz
0 siblings, 1 reply; 16+ messages in thread
From: Elena Zannoni @ 2003-04-10 14:08 UTC (permalink / raw)
To: Daniel Jacobowitz; +Cc: Elena Zannoni, gdb-patches
Daniel Jacobowitz writes:
> On Tue, Apr 08, 2003 at 05:20:19PM -0400, Elena Zannoni wrote:
> >
> > I was getting warnings when compiling the test on 64-bit because of the casts.
> >
>
> Sigh, I was just sloppy writing this one. Does it work if you pass
> &args[i] instead of messing with my_number? That's a little more
> portable.
>
Ok, how about this? But now get_current_thread in schedlock.exp
doesn't work, because the output has changed. I am not sure I
understand what it should be doing now. There is no way to get the
thread number from the backtraces.
elena
Index: schedlock.c
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.threads/schedlock.c,v
retrieving revision 1.2
diff -u -p -r1.2 schedlock.c
--- schedlock.c 23 Oct 2002 03:22:56 -0000 1.2
+++ schedlock.c 10 Apr 2003 14:00:41 -0000
@@ -18,19 +18,21 @@ int main() {
for (i = 0; i < NUM; i++)
{
args[i] = 1;
- res = pthread_create(&threads[i], NULL, thread_function, (void *)i);
+ res = pthread_create(&threads[i],
+ NULL,
+ thread_function,
+ (void *) &args[i]);
}
/* schedlock.exp: last thread start. */
args[i] = 1;
- thread_function ((void *) i);
+ thread_function ((void *) &args[i]);
exit(EXIT_SUCCESS);
}
void *thread_function(void *arg) {
- int my_number = (int) arg;
- int *myp = &args[my_number];
+ int *myp = (int *)arg;
/* Don't run forever. Run just short of it :) */
while (*myp > 0)
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFA/TESTSUITE] build schedlock.c on 64-bit platforms
2003-04-10 14:08 ` Elena Zannoni
@ 2003-04-10 14:19 ` Daniel Jacobowitz
2003-04-10 14:35 ` Andrew Cagney
2003-04-11 5:18 ` Michael Snyder
0 siblings, 2 replies; 16+ messages in thread
From: Daniel Jacobowitz @ 2003-04-10 14:19 UTC (permalink / raw)
To: Elena Zannoni; +Cc: gdb-patches
On Thu, Apr 10, 2003 at 10:12:28AM -0400, Elena Zannoni wrote:
> Daniel Jacobowitz writes:
> > On Tue, Apr 08, 2003 at 05:20:19PM -0400, Elena Zannoni wrote:
> > >
> > > I was getting warnings when compiling the test on 64-bit because of the casts.
> > >
>
> >
> > Sigh, I was just sloppy writing this one. Does it work if you pass
> > &args[i] instead of messing with my_number? That's a little more
> > portable.
> >
>
> Ok, how about this? But now get_current_thread in schedlock.exp
> doesn't work, because the output has changed. I am not sure I
> understand what it should be doing now. There is no way to get the
> thread number from the backtraces.
Oh, you're right - sorry for the wild goose chase. I think your
previous patch with the cast to long is OK then. The test isn't
terribly portable but it should be portable enough for our use.
>
> elena
>
>
>
>
> Index: schedlock.c
> ===================================================================
> RCS file: /cvs/uberbaum/gdb/testsuite/gdb.threads/schedlock.c,v
> retrieving revision 1.2
> diff -u -p -r1.2 schedlock.c
> --- schedlock.c 23 Oct 2002 03:22:56 -0000 1.2
> +++ schedlock.c 10 Apr 2003 14:00:41 -0000
> @@ -18,19 +18,21 @@ int main() {
> for (i = 0; i < NUM; i++)
> {
> args[i] = 1;
> - res = pthread_create(&threads[i], NULL, thread_function, (void *)i);
> + res = pthread_create(&threads[i],
> + NULL,
> + thread_function,
> + (void *) &args[i]);
> }
>
> /* schedlock.exp: last thread start. */
> args[i] = 1;
> - thread_function ((void *) i);
> + thread_function ((void *) &args[i]);
>
> exit(EXIT_SUCCESS);
> }
>
> void *thread_function(void *arg) {
> - int my_number = (int) arg;
> - int *myp = &args[my_number];
> + int *myp = (int *)arg;
>
> /* Don't run forever. Run just short of it :) */
> while (*myp > 0)
>
>
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFA/TESTSUITE] build schedlock.c on 64-bit platforms
2003-04-10 14:19 ` Daniel Jacobowitz
@ 2003-04-10 14:35 ` Andrew Cagney
2003-04-10 15:16 ` Andreas Schwab
2003-04-11 5:18 ` Michael Snyder
1 sibling, 1 reply; 16+ messages in thread
From: Andrew Cagney @ 2003-04-10 14:35 UTC (permalink / raw)
To: Daniel Jacobowitz; +Cc: Elena Zannoni, gdb-patches
> args[i] = 1;
>> - res = pthread_create(&threads[i], NULL, thread_function, (void *)i);
>>
Try:
(((char *) NULL) + i)
and what ever the reverse of that is ....
Andrew
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFA/TESTSUITE] build schedlock.c on 64-bit platforms
2003-04-10 14:35 ` Andrew Cagney
@ 2003-04-10 15:16 ` Andreas Schwab
2003-04-10 15:20 ` Daniel Jacobowitz
0 siblings, 1 reply; 16+ messages in thread
From: Andreas Schwab @ 2003-04-10 15:16 UTC (permalink / raw)
To: Andrew Cagney; +Cc: Daniel Jacobowitz, Elena Zannoni, gdb-patches
Andrew Cagney <ac131313@redhat.com> writes:
|> > args[i] = 1;
|> >> - res = pthread_create(&threads[i], NULL, thread_function, (void *)i);
|> >>
|>
|> Try:
|>
|> (((char *) NULL) + i)
|>
|> and what ever the reverse of that is ....
That is even less portable than the above.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux AG, Deutschherrnstr. 15-19, D-90429 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFA/TESTSUITE] build schedlock.c on 64-bit platforms
2003-04-10 15:16 ` Andreas Schwab
@ 2003-04-10 15:20 ` Daniel Jacobowitz
2003-04-10 16:05 ` Elena Zannoni
2003-04-10 16:12 ` Andreas Schwab
0 siblings, 2 replies; 16+ messages in thread
From: Daniel Jacobowitz @ 2003-04-10 15:20 UTC (permalink / raw)
To: Andreas Schwab; +Cc: Andrew Cagney, Elena Zannoni, gdb-patches
On Thu, Apr 10, 2003 at 05:16:05PM +0200, Andreas Schwab wrote:
> Andrew Cagney <ac131313@redhat.com> writes:
>
> |> > args[i] = 1;
> |> >> - res = pthread_create(&threads[i], NULL, thread_function, (void *)i);
> |> >>
> |>
> |> Try:
> |>
> |> (((char *) NULL) + i)
> |>
> |> and what ever the reverse of that is ....
>
> That is even less portable than the above.
Really? What's non-portable about it?
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFA/TESTSUITE] build schedlock.c on 64-bit platforms
2003-04-10 15:20 ` Daniel Jacobowitz
@ 2003-04-10 16:05 ` Elena Zannoni
2003-04-10 16:36 ` Andreas Schwab
2003-04-10 16:12 ` Andreas Schwab
1 sibling, 1 reply; 16+ messages in thread
From: Elena Zannoni @ 2003-04-10 16:05 UTC (permalink / raw)
To: Daniel Jacobowitz
Cc: Andreas Schwab, Andrew Cagney, Elena Zannoni, gdb-patches
Daniel Jacobowitz writes:
> On Thu, Apr 10, 2003 at 05:16:05PM +0200, Andreas Schwab wrote:
> > Andrew Cagney <ac131313@redhat.com> writes:
> >
> > |> > args[i] = 1;
> > |> >> - res = pthread_create(&threads[i], NULL, thread_function, (void *)i);
> > |> >>
> > |>
> > |> Try:
> > |>
> > |> (((char *) NULL) + i)
> > |>
> > |> and what ever the reverse of that is ....
> >
> > That is even less portable than the above.
>
> Really? What's non-portable about it?
Attempt #3....
Index: schedlock.c
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.threads/schedlock.c,v
retrieving revision 1.2
diff -u -p -r1.2 schedlock.c
--- schedlock.c 23 Oct 2002 03:22:56 -0000 1.2
+++ schedlock.c 10 Apr 2003 16:04:37 -0000
@@ -18,18 +18,25 @@ int main() {
for (i = 0; i < NUM; i++)
{
args[i] = 1;
- res = pthread_create(&threads[i], NULL, thread_function, (void *)i);
+ res = pthread_create(&threads[i],
+ NULL,
+ thread_function,
+ (void *) (((char *) NULL) + i));
}
/* schedlock.exp: last thread start. */
args[i] = 1;
- thread_function ((void *) i);
+ thread_function ((void *) (((char *) NULL) + i));
exit(EXIT_SUCCESS);
}
void *thread_function(void *arg) {
- int my_number = (int) arg;
+
+ /* Use sick pointer arithmetic trick, to get an offset which is a
+ long. This will be silently converted to an int, which is of
+ smaller size on 64-bit platforms. */
+ int my_number = (char *) arg - (char *) NULL;
int *myp = &args[my_number];
/* Don't run forever. Run just short of it :) */
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFA/TESTSUITE] build schedlock.c on 64-bit platforms
2003-04-10 15:20 ` Daniel Jacobowitz
2003-04-10 16:05 ` Elena Zannoni
@ 2003-04-10 16:12 ` Andreas Schwab
2003-04-10 17:45 ` Andrew Cagney
1 sibling, 1 reply; 16+ messages in thread
From: Andreas Schwab @ 2003-04-10 16:12 UTC (permalink / raw)
To: Andrew Cagney; +Cc: Elena Zannoni, gdb-patches
Daniel Jacobowitz <drow@mvista.com> writes:
|> On Thu, Apr 10, 2003 at 05:16:05PM +0200, Andreas Schwab wrote:
|> > Andrew Cagney <ac131313@redhat.com> writes:
|> >
|> > |> > args[i] = 1;
|> > |> >> - res = pthread_create(&threads[i], NULL, thread_function, (void *)i);
|> > |> >>
|> > |>
|> > |> Try:
|> > |>
|> > |> (((char *) NULL) + i)
|> > |>
|> > |> and what ever the reverse of that is ....
|> >
|> > That is even less portable than the above.
|>
|> Really? What's non-portable about it?
NULL is not an object, and the C standard does not define any meaning for
the above expression. On the other hand, the effect of a cast from
integer to pointer is implementation-defined (although it might trap).
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux AG, Deutschherrnstr. 15-19, D-90429 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFA/TESTSUITE] build schedlock.c on 64-bit platforms
2003-04-10 16:05 ` Elena Zannoni
@ 2003-04-10 16:36 ` Andreas Schwab
0 siblings, 0 replies; 16+ messages in thread
From: Andreas Schwab @ 2003-04-10 16:36 UTC (permalink / raw)
To: Elena Zannoni; +Cc: Daniel Jacobowitz, Andrew Cagney, gdb-patches
Elena Zannoni <ezannoni@redhat.com> writes:
|> Daniel Jacobowitz writes:
|> > On Thu, Apr 10, 2003 at 05:16:05PM +0200, Andreas Schwab wrote:
|> > > Andrew Cagney <ac131313@redhat.com> writes:
|> > >
|> > > |> > args[i] = 1;
|> > > |> >> - res = pthread_create(&threads[i], NULL, thread_function, (void *)i);
|> > > |> >>
|> > > |>
|> > > |> Try:
|> > > |>
|> > > |> (((char *) NULL) + i)
|> > > |>
|> > > |> and what ever the reverse of that is ....
|> > >
|> > > That is even less portable than the above.
|> >
|> > Really? What's non-portable about it?
|>
|>
|> Attempt #3....
IMHO the intermediate cast to long (or better intptr_t when available)
would be most portable.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux AG, Deutschherrnstr. 15-19, D-90429 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFA/TESTSUITE] build schedlock.c on 64-bit platforms
2003-04-10 16:12 ` Andreas Schwab
@ 2003-04-10 17:45 ` Andrew Cagney
2003-04-10 17:48 ` Daniel Jacobowitz
0 siblings, 1 reply; 16+ messages in thread
From: Andrew Cagney @ 2003-04-10 17:45 UTC (permalink / raw)
To: Andreas Schwab; +Cc: Elena Zannoni, gdb-patches
> Daniel Jacobowitz <drow@mvista.com> writes:
>
> |> On Thu, Apr 10, 2003 at 05:16:05PM +0200, Andreas Schwab wrote:
> |> > Andrew Cagney <ac131313@redhat.com> writes:
> |> >
> |> > |> > args[i] = 1;
> |> > |> >> - res = pthread_create(&threads[i], NULL, thread_function, (void *)i);
> |> > |> >>
> |> > |>
> |> > |> Try:
> |> > |>
> |> > |> (((char *) NULL) + i)
> |> > |>
> |> > |> and what ever the reverse of that is ....
> |> >
> |> > That is even less portable than the above.
> |>
> |> Really? What's non-portable about it?
>
> NULL is not an object, and the C standard does not define any meaning for
> the above expression. On the other hand, the effect of a cast from
> integer to pointer is implementation-defined (although it might trap).
What about this then:
static char *null_char_pointer = NULL;
(null_char_pointer + i)
and:
(i - null_char_pointer)
:-)
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFA/TESTSUITE] build schedlock.c on 64-bit platforms
2003-04-10 17:45 ` Andrew Cagney
@ 2003-04-10 17:48 ` Daniel Jacobowitz
0 siblings, 0 replies; 16+ messages in thread
From: Daniel Jacobowitz @ 2003-04-10 17:48 UTC (permalink / raw)
To: Andrew Cagney; +Cc: Andreas Schwab, Elena Zannoni, gdb-patches
On Thu, Apr 10, 2003 at 01:45:34PM -0400, Andrew Cagney wrote:
> >Daniel Jacobowitz <drow@mvista.com> writes:
> >
> >|> On Thu, Apr 10, 2003 at 05:16:05PM +0200, Andreas Schwab wrote:
> >|> > Andrew Cagney <ac131313@redhat.com> writes:
> >|> >
> >|> > |> > args[i] = 1;
> >|> > |> >> - res = pthread_create(&threads[i], NULL, thread_function,
> >(void *)i);
> >|> > |> >>
> >|> > |>
> >|> > |> Try:
> >|> > |>
> >|> > |> (((char *) NULL) + i)
> >|> > |>
> >|> > |> and what ever the reverse of that is ....
> >|> >
> >|> > That is even less portable than the above.
> >|>
> >|> Really? What's non-portable about it?
> >
> >NULL is not an object, and the C standard does not define any meaning for
> >the above expression. On the other hand, the effect of a cast from
> >integer to pointer is implementation-defined (although it might trap).
>
> What about this then:
>
> static char *null_char_pointer = NULL;
>
> (null_char_pointer + i)
>
> and:
>
> (i - null_char_pointer)
>
> :-)
Also not defined, for the same reason. I believe the only pointer
outside of an object that's guaranteed to have any useful value is the
one which points just past the end of it.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFA/TESTSUITE] build schedlock.c on 64-bit platforms
2003-04-10 14:19 ` Daniel Jacobowitz
2003-04-10 14:35 ` Andrew Cagney
@ 2003-04-11 5:18 ` Michael Snyder
2003-04-15 1:48 ` Elena Zannoni
1 sibling, 1 reply; 16+ messages in thread
From: Michael Snyder @ 2003-04-11 5:18 UTC (permalink / raw)
To: Daniel Jacobowitz; +Cc: Elena Zannoni, gdb-patches
Daniel Jacobowitz wrote:
>
> On Thu, Apr 10, 2003 at 10:12:28AM -0400, Elena Zannoni wrote:
> > Daniel Jacobowitz writes:
> > > On Tue, Apr 08, 2003 at 05:20:19PM -0400, Elena Zannoni wrote:
> > > >
> > > > I was getting warnings when compiling the test on 64-bit because of the casts.
> > > >
> >
> > >
> > > Sigh, I was just sloppy writing this one. Does it work if you pass
> > > &args[i] instead of messing with my_number? That's a little more
> > > portable.
> > >
> >
> > Ok, how about this? But now get_current_thread in schedlock.exp
> > doesn't work, because the output has changed. I am not sure I
> > understand what it should be doing now. There is no way to get the
> > thread number from the backtraces.
>
> Oh, you're right - sorry for the wild goose chase. I think your
> previous patch with the cast to long is OK then. The test isn't
> terribly portable but it should be portable enough for our use.
Why don't you just declare 'i' a long and be done with it?
> > Index: schedlock.c
> > ===================================================================
> > RCS file: /cvs/uberbaum/gdb/testsuite/gdb.threads/schedlock.c,v
> > retrieving revision 1.2
> > diff -u -p -r1.2 schedlock.c
> > --- schedlock.c 23 Oct 2002 03:22:56 -0000 1.2
> > +++ schedlock.c 10 Apr 2003 14:00:41 -0000
> > @@ -18,19 +18,21 @@ int main() {
> > for (i = 0; i < NUM; i++)
> > {
> > args[i] = 1;
> > - res = pthread_create(&threads[i], NULL, thread_function, (void *)i);
> > + res = pthread_create(&threads[i],
> > + NULL,
> > + thread_function,
> > + (void *) &args[i]);
> > }
> >
> > /* schedlock.exp: last thread start. */
> > args[i] = 1;
> > - thread_function ((void *) i);
> > + thread_function ((void *) &args[i]);
> >
> > exit(EXIT_SUCCESS);
> > }
> >
> > void *thread_function(void *arg) {
> > - int my_number = (int) arg;
> > - int *myp = &args[my_number];
> > + int *myp = (int *)arg;
> >
> > /* Don't run forever. Run just short of it :) */
> > while (*myp > 0)
> >
> >
>
> --
> Daniel Jacobowitz
> MontaVista Software Debian GNU/Linux Developer
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFA/TESTSUITE] build schedlock.c on 64-bit platforms
2003-04-11 5:18 ` Michael Snyder
@ 2003-04-15 1:48 ` Elena Zannoni
2003-04-15 2:06 ` Daniel Jacobowitz
0 siblings, 1 reply; 16+ messages in thread
From: Elena Zannoni @ 2003-04-15 1:48 UTC (permalink / raw)
To: Michael Snyder; +Cc: Daniel Jacobowitz, Elena Zannoni, gdb-patches
Michael Snyder writes:
> Daniel Jacobowitz wrote:
> >
> > On Thu, Apr 10, 2003 at 10:12:28AM -0400, Elena Zannoni wrote:
> > > Daniel Jacobowitz writes:
> > > > On Tue, Apr 08, 2003 at 05:20:19PM -0400, Elena Zannoni wrote:
> > > > >
> > > > > I was getting warnings when compiling the test on 64-bit because of the casts.
> > > > >
> > >
> > > >
> > > > Sigh, I was just sloppy writing this one. Does it work if you pass
> > > > &args[i] instead of messing with my_number? That's a little more
> > > > portable.
> > > >
> > >
> > > Ok, how about this? But now get_current_thread in schedlock.exp
> > > doesn't work, because the output has changed. I am not sure I
> > > understand what it should be doing now. There is no way to get the
> > > thread number from the backtraces.
> >
> > Oh, you're right - sorry for the wild goose chase. I think your
> > previous patch with the cast to long is OK then. The test isn't
> > terribly portable but it should be portable enough for our use.
>
> Why don't you just declare 'i' a long and be done with it?
Daniel?
Index: schedlock.c
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.threads/schedlock.c,v
retrieving revision 1.2
diff -u -p -r1.2 schedlock.c
--- schedlock.c 23 Oct 2002 03:22:56 -0000 1.2
+++ schedlock.c 15 Apr 2003 01:47:34 -0000
@@ -13,12 +13,15 @@ int main() {
int res;
pthread_t threads[NUM];
void *thread_result;
- int i;
+ long i;
for (i = 0; i < NUM; i++)
{
args[i] = 1;
- res = pthread_create(&threads[i], NULL, thread_function, (void *)i);
+ res = pthread_create(&threads[i],
+ NULL,
+ thread_function,
+ (void *) i);
}
/* schedlock.exp: last thread start. */
@@ -29,7 +32,7 @@ int main() {
}
void *thread_function(void *arg) {
- int my_number = (int) arg;
+ int my_number = (long) arg;
int *myp = &args[my_number];
/* Don't run forever. Run just short of it :) */
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFA/TESTSUITE] build schedlock.c on 64-bit platforms
2003-04-15 1:48 ` Elena Zannoni
@ 2003-04-15 2:06 ` Daniel Jacobowitz
2003-04-15 2:24 ` Elena Zannoni
0 siblings, 1 reply; 16+ messages in thread
From: Daniel Jacobowitz @ 2003-04-15 2:06 UTC (permalink / raw)
To: Elena Zannoni; +Cc: Michael Snyder, gdb-patches
On Mon, Apr 14, 2003 at 09:53:14PM -0400, Elena Zannoni wrote:
> Michael Snyder writes:
> > Daniel Jacobowitz wrote:
> > >
> > > On Thu, Apr 10, 2003 at 10:12:28AM -0400, Elena Zannoni wrote:
> > > > Daniel Jacobowitz writes:
> > > > > On Tue, Apr 08, 2003 at 05:20:19PM -0400, Elena Zannoni wrote:
> > > > > >
> > > > > > I was getting warnings when compiling the test on 64-bit because of the casts.
> > > > > >
> > > >
> > > > >
> > > > > Sigh, I was just sloppy writing this one. Does it work if you pass
> > > > > &args[i] instead of messing with my_number? That's a little more
> > > > > portable.
> > > > >
> > > >
> > > > Ok, how about this? But now get_current_thread in schedlock.exp
> > > > doesn't work, because the output has changed. I am not sure I
> > > > understand what it should be doing now. There is no way to get the
> > > > thread number from the backtraces.
> > >
> > > Oh, you're right - sorry for the wild goose chase. I think your
> > > previous patch with the cast to long is OK then. The test isn't
> > > terribly portable but it should be portable enough for our use.
> >
> > Why don't you just declare 'i' a long and be done with it?
>
> Daniel?
Looks fine to me - portable enough for our purposes.
> Index: schedlock.c
> ===================================================================
> RCS file: /cvs/uberbaum/gdb/testsuite/gdb.threads/schedlock.c,v
> retrieving revision 1.2
> diff -u -p -r1.2 schedlock.c
> --- schedlock.c 23 Oct 2002 03:22:56 -0000 1.2
> +++ schedlock.c 15 Apr 2003 01:47:34 -0000
> @@ -13,12 +13,15 @@ int main() {
> int res;
> pthread_t threads[NUM];
> void *thread_result;
> - int i;
> + long i;
>
> for (i = 0; i < NUM; i++)
> {
> args[i] = 1;
> - res = pthread_create(&threads[i], NULL, thread_function, (void *)i);
> + res = pthread_create(&threads[i],
> + NULL,
> + thread_function,
> + (void *) i);
> }
>
> /* schedlock.exp: last thread start. */
> @@ -29,7 +32,7 @@ int main() {
> }
>
> void *thread_function(void *arg) {
> - int my_number = (int) arg;
> + int my_number = (long) arg;
> int *myp = &args[my_number];
>
> /* Don't run forever. Run just short of it :) */
>
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFA/TESTSUITE] build schedlock.c on 64-bit platforms
2003-04-15 2:06 ` Daniel Jacobowitz
@ 2003-04-15 2:24 ` Elena Zannoni
0 siblings, 0 replies; 16+ messages in thread
From: Elena Zannoni @ 2003-04-15 2:24 UTC (permalink / raw)
To: Daniel Jacobowitz; +Cc: Elena Zannoni, Michael Snyder, gdb-patches
Daniel Jacobowitz writes:
> On Mon, Apr 14, 2003 at 09:53:14PM -0400, Elena Zannoni wrote:
> > Michael Snyder writes:
> > > Daniel Jacobowitz wrote:
> > > >
> > > > On Thu, Apr 10, 2003 at 10:12:28AM -0400, Elena Zannoni wrote:
> > > > > Daniel Jacobowitz writes:
> > > > > > On Tue, Apr 08, 2003 at 05:20:19PM -0400, Elena Zannoni wrote:
> > > > > > >
> > > > > > > I was getting warnings when compiling the test on 64-bit because of the casts.
> > > > > > >
> > > > >
> > > > > >
> > > > > > Sigh, I was just sloppy writing this one. Does it work if you pass
> > > > > > &args[i] instead of messing with my_number? That's a little more
> > > > > > portable.
> > > > > >
> > > > >
> > > > > Ok, how about this? But now get_current_thread in schedlock.exp
> > > > > doesn't work, because the output has changed. I am not sure I
> > > > > understand what it should be doing now. There is no way to get the
> > > > > thread number from the backtraces.
> > > >
> > > > Oh, you're right - sorry for the wild goose chase. I think your
> > > > previous patch with the cast to long is OK then. The test isn't
> > > > terribly portable but it should be portable enough for our use.
> > >
> > > Why don't you just declare 'i' a long and be done with it?
> >
> > Daniel?
>
> Looks fine to me - portable enough for our purposes.
ok, I committed it.
>
> > Index: schedlock.c
> > ===================================================================
> > RCS file: /cvs/uberbaum/gdb/testsuite/gdb.threads/schedlock.c,v
> > retrieving revision 1.2
> > diff -u -p -r1.2 schedlock.c
> > --- schedlock.c 23 Oct 2002 03:22:56 -0000 1.2
> > +++ schedlock.c 15 Apr 2003 01:47:34 -0000
> > @@ -13,12 +13,15 @@ int main() {
> > int res;
> > pthread_t threads[NUM];
> > void *thread_result;
> > - int i;
> > + long i;
> >
> > for (i = 0; i < NUM; i++)
> > {
> > args[i] = 1;
> > - res = pthread_create(&threads[i], NULL, thread_function, (void *)i);
> > + res = pthread_create(&threads[i],
> > + NULL,
> > + thread_function,
> > + (void *) i);
> > }
> >
> > /* schedlock.exp: last thread start. */
> > @@ -29,7 +32,7 @@ int main() {
> > }
> >
> > void *thread_function(void *arg) {
> > - int my_number = (int) arg;
> > + int my_number = (long) arg;
> > int *myp = &args[my_number];
> >
> > /* Don't run forever. Run just short of it :) */
> >
>
> --
> Daniel Jacobowitz
> MontaVista Software Debian GNU/Linux Developer
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2003-04-15 2:24 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-04-08 21:16 [RFA/TESTSUITE] build schedlock.c on 64-bit platforms Elena Zannoni
2003-04-09 13:13 ` Daniel Jacobowitz
2003-04-10 14:08 ` Elena Zannoni
2003-04-10 14:19 ` Daniel Jacobowitz
2003-04-10 14:35 ` Andrew Cagney
2003-04-10 15:16 ` Andreas Schwab
2003-04-10 15:20 ` Daniel Jacobowitz
2003-04-10 16:05 ` Elena Zannoni
2003-04-10 16:36 ` Andreas Schwab
2003-04-10 16:12 ` Andreas Schwab
2003-04-10 17:45 ` Andrew Cagney
2003-04-10 17:48 ` Daniel Jacobowitz
2003-04-11 5:18 ` Michael Snyder
2003-04-15 1:48 ` Elena Zannoni
2003-04-15 2:06 ` Daniel Jacobowitz
2003-04-15 2:24 ` Elena Zannoni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox