From: Janne Snabb on
On Mon, 19 Jul 2010, Christopher Key wrote:

> Simple solution, there was a missing -lpthread, patch available from:
>
> http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/148648

Hehe... I completely overlooked this possibility. I sent a follow-up
to perl5-porters quoting your message.

> For some reason, linking binaries without -lpthread succeeds, but the
> pthread calls in the resulting binary do nothing.

Odd. I wonder what is the justification for this behaviour, if
any...

--
Janne Snabb / EPIPE Communications
snabb(a)epipe.com - http://epipe.com/
_______________________________________________
freebsd-ports(a)freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscribe(a)freebsd.org"

From: "Scott Sanbeg" on
The patch could possibly solve my challenge, but if it works then why do I
get this?

root(a)anchorage:/usr/ports/lang/perl5.12# patch < my.patch
Hmm... Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|--- files/patch-freebsd.sh 2009-01-13 21:38:50.000000000 +0000
|+++ files/patch-freebsd.sh 2010-07-16 21:46:31.000000000 +0100
--------------------------
Patching file files/patch-freebsd.sh using Plan A...
patch: **** malformed patch at line 8: @@ -88,6 +88,8 @@

Scott

-----Original Message-----
From: owner-freebsd-ports(a)freebsd.org
[mailto:owner-freebsd-ports(a)freebsd.org] On Behalf Of Christopher Key
Sent: Sunday, July 18, 2010 8:46 PM
To: ports(a)freebsd.org
Subject: Re: lang/perl5.12 segfault (amd64 - 8-STABLE)

cjk32(a)cam.ac.uk wrote:
> Someone who understands the perl threading internals needs to figure
> this out.
>
>
Simple solution, there was a missing -lpthread, patch available from:

http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/148648


For some reason, linking binaries without -lpthread succeeds, but the
pthread calls in the resulting binary do nothing.

#v+
# cat pthread.c
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

int main(void) {

int i;
pthread_key_t k;

k = 1234;
i = pthread_key_create(&k, NULL);
fprintf(stderr, "%d %d\n", i, (int) k);

return 0;

}
# gcc pthread.c -o pt1
# gcc pthread.c -lpthread -o pt2
# ./pt1
0 1234
# ./pt2
0 0
#v-

_______________________________________________
freebsd-ports(a)freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscribe(a)freebsd.org"

_______________________________________________
freebsd-ports(a)freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscribe(a)freebsd.org"

From: Christopher Key on
Scott Sanbeg wrote:
> The patch could possibly solve my challenge, but if it works then why do I
> get this?
>
> root(a)anchorage:/usr/ports/lang/perl5.12# patch < my.patch
> Hmm... Looks like a unified diff to me...
> The text leading up to this was:
> --------------------------
> |--- files/patch-freebsd.sh 2009-01-13 21:38:50.000000000 +0000
> |+++ files/patch-freebsd.sh 2010-07-16 21:46:31.000000000 +0100
> --------------------------
> Patching file files/patch-freebsd.sh using Plan A...
> patch: **** malformed patch at line 8: @@ -88,6 +88,8 @@
>
>
I guess that the patch is getting munged somewhere; I'm not sure why its
ended up inline in the pr rather than available to download. Try the
attached.

Chris.
From: Gary Jennejohn on
On Tue, 20 Jul 2010 07:37:37 -0700
"Scott Sanbeg" <ssanbeg(a)gmail.com> wrote:

> The patch could possibly solve my challenge, but if it works then why do I
> get this?
>
> root(a)anchorage:/usr/ports/lang/perl5.12# patch < my.patch
> Hmm... Looks like a unified diff to me...
> The text leading up to this was:
> --------------------------
> |--- files/patch-freebsd.sh 2009-01-13 21:38:50.000000000 +0000
> |+++ files/patch-freebsd.sh 2010-07-16 21:46:31.000000000 +0100
> --------------------------
> Patching file files/patch-freebsd.sh using Plan A...
> patch: **** malformed patch at line 8: @@ -88,6 +88,8 @@
>

Works for me. Did you perhaps edit it and make an error?

You can always apply it by hand, it's not all that complex.

--
Gary Jennejohn
_______________________________________________
freebsd-ports(a)freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscribe(a)freebsd.org"

From: "Scott Sanbeg" on
Chris - thank you for the attachment - using it succeeded and perl 5.12 has
also been successfully built.

Gary - no edits, no. However, using Chris's attachment as 'my.patch' and the
previous copy and paste from the inline code of ports/148648 as
'my.patch.old' for the diff run, below, you'll see that the two are
obviously different. I am using Google Chrome for a browser, so the extra
white space, etc, may be due to it, or to the ports site and how it is
storing the individual character bits.

root(a)anchorage:/usr/ports/lang/perl5.12# diff my.patch my.patch.old
1,2c1,2
< --- files/patch-freebsd.sh 2009-01-13 21:38:50.000000000 +0000
< +++ files/patch-freebsd.sh 2010-07-16 21:46:31.000000000 +0100
---
> --- files/patch-freebsd.sh 2009-01-13 21:38:50.000000000 +0000
> +++ files/patch-freebsd.sh 2010-07-16 21:46:31.000000000 +0100
6,10c6,10
< +--- ./hints/freebsd.sh.orig 2010-05-07 14:34:10.000000000 +0100
< ++++ ./hints/freebsd.sh 2010-07-16 21:43:38.000000000 +0100


< @@ -88,6 +88,8 @@
< esac
< libswanted=`echo $libswanted | sed 's/ malloc / /'`
---
> +--- ./hints/freebsd.sh.orig 2010-05-07 14:34:10.000000000 +0100
> ++++ ./hints/freebsd.sh 2010-07-16 21:43:38.000000000 +0100
> @@ -88,6 +88,8 @@
> esac
> libswanted=`echo $libswanted | sed 's/ malloc / /'`
12,14c12,14
< lddlflags="-shared "
< fi
< cccdlflags='-DPIC -fPIC'
---
> lddlflags="-shared "
> fi
> cccdlflags='-DPIC -fPIC'
18,24c18,24
< + libpth="/usr/lib /usr/local/lib"
< + glibpth="/usr/lib /usr/local/lib"
< +- ldflags="-Wl,-E "
< ++ ldflags="%%PTHREAD_LIBS%% -Wl,-E "
< + lddlflags="-shared "
< + cccdlflags='-DPIC -fPIC'
< + ;;
---
> + libpth="/usr/lib /usr/local/lib"
> + glibpth="/usr/lib /usr/local/lib"
> +- ldflags="-Wl,-E "
> ++ ldflags="%%PTHREAD_LIBS%% -Wl,-E "
> + lddlflags="-shared "
> + cccdlflags='-DPIC -fPIC'
> + ;;
26c26
< 0*|1*|2*|3*) ;;
---
> 0*|1*|2*|3*) ;;
28c28
< *)
---
> *)
30,32c30,32
< if /usr/bin/file -L /usr/lib/libc.so | /usr/bin/grep -vq "not
stripped" ; then
< usenm=false
< fi
---
> if /usr/bin/file -L /usr/lib/libc.so | /usr/bin/grep -vq "not stripped" ;
then
> usenm=false
> fi
36,37c36,37
< # This script UU/usethreads.cbu will get 'called-back' by Configure
< # after it has prompted the user for whether to use threads.
---
> # This script UU/usethreads.cbu will get 'called-back' by Configure
> # after it has prompted the user for whether to use threads.

Scott

-----Original Message-----
From: Christopher Key [mailto:cjk32(a)cam.ac.uk]
Sent: Tuesday, July 20, 2010 8:47 AM
To: Scott Sanbeg
Cc: ports(a)freebsd.org
Subject: Re: lang/perl5.12 segfault (amd64 - 8-STABLE)

Scott Sanbeg wrote:
> The patch could possibly solve my challenge, but if it works then why do I
> get this?
>
> root(a)anchorage:/usr/ports/lang/perl5.12# patch < my.patch
> Hmm... Looks like a unified diff to me...
> The text leading up to this was:
> --------------------------
> |--- files/patch-freebsd.sh 2009-01-13 21:38:50.000000000 +0000
> |+++ files/patch-freebsd.sh 2010-07-16 21:46:31.000000000 +0100
> --------------------------
> Patching file files/patch-freebsd.sh using Plan A...
> patch: **** malformed patch at line 8: @@ -88,6 +88,8 @@
>
>
I guess that the patch is getting munged somewhere; I'm not sure why its
ended up inline in the pr rather than available to download. Try the
attached.

Chris.

_______________________________________________
freebsd-ports(a)freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscribe(a)freebsd.org"