Re: parallel make broken

2013-06-23 Thread Ben Laurie
On 22 June 2013 23:06, Mike Frysinger vap...@gentoo.org wrote:
 On Saturday 22 June 2013 15:07:49 Ben Laurie wrote:
 On 22 June 2013 19:04, Mike Frysinger vap...@gentoo.org wrote:
  On Wednesday 19 June 2013 07:21:39 Ben Laurie wrote:
  On 18 June 2013 22:35, Mike Frysinger vap...@gentoo.org wrote:
   On Tuesday 18 June 2013 07:37:55 Richard Weinberger wrote:
   While building openssl-1.0.1e I noticed that the parallel build
   is broken.
  
   yes, it's pretty much always been broken
  
   I found this patch on the net:
   http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/open
   ssl /fi les/openssl-1.0.1-parallel-build.patch With it applied
   openssl builds fine in parallel.
  
   heh, you've found me!  the referenced ticket says it's been merged,
   but it doesn't seem that way (at least for the latest branch).
 
  You are right it hasn't been merged. One problem with it is it doesn't
  work with BSD make (BSD make doesn't understand | in dependencies).
 
  true, but the patch posted to RT didn't include that, and that usage
  shows up only twice in the current Gentoo patch.  plenty of the other
  parts can be merged now so it's not nearly as terrible.
 
  i wonder if the | can be written instead like:
  lib:
  $(MAKE) subdirs
  $(MAKE) $(LIB)
  @touch lib
  $(LIB): $(LIBOBJ)
  ...

 I don't know, but FWIW, I've also been working on -j stuff, but using
 the mk1mf script (see the GitConfigure and GitMake scripts in master
 and 1.0.2). My version is at least twice as fast as yours - on my
 machine :-)

 to be fair, i was just trying to make it work rather than rewrite things

 unfortunately mk1mf is a perl script, and i've been doing my damnedest to make
 sure perl isn't a requirement to build a base system.  we've been able to
 avoid this so far w/openssl ...

Well, you need perl to run Configure already, so presumably you do
that in advance. You could do the same with mk1mf.


 Possibly the right answer is to simply move to a single makefile...

 that might work
 -mike
__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   majord...@openssl.org


Re: parallel make broken

2013-06-22 Thread Mike Frysinger
On Wednesday 19 June 2013 07:21:39 Ben Laurie wrote:
 On 18 June 2013 22:35, Mike Frysinger vap...@gentoo.org wrote:
  On Tuesday 18 June 2013 07:37:55 Richard Weinberger wrote:
  While building openssl-1.0.1e I noticed that the parallel build
  is broken.
  
  yes, it's pretty much always been broken
  
  I found this patch on the net:
  http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/openssl
  /fi les/openssl-1.0.1-parallel-build.patch With it applied openssl
  builds fine in parallel.
  
  heh, you've found me!  the referenced ticket says it's been merged, but
  it doesn't seem that way (at least for the latest branch).
 
 You are right it hasn't been merged. One problem with it is it doesn't
 work with BSD make (BSD make doesn't understand | in dependencies).

true, but the patch posted to RT didn't include that, and that usage shows up 
only twice in the current Gentoo patch.  plenty of the other parts can be 
merged now so it's not nearly as terrible.

i wonder if the | can be written instead like:
lib:
$(MAKE) subdirs
$(MAKE) $(LIB)
@touch lib
$(LIB): $(LIBOBJ)
...
-mike


signature.asc
Description: This is a digitally signed message part.


Re: parallel make broken

2013-06-22 Thread Ben Laurie
On 22 June 2013 19:04, Mike Frysinger vap...@gentoo.org wrote:
 On Wednesday 19 June 2013 07:21:39 Ben Laurie wrote:
 On 18 June 2013 22:35, Mike Frysinger vap...@gentoo.org wrote:
  On Tuesday 18 June 2013 07:37:55 Richard Weinberger wrote:
  While building openssl-1.0.1e I noticed that the parallel build
  is broken.
 
  yes, it's pretty much always been broken
 
  I found this patch on the net:
  http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/openssl
  /fi les/openssl-1.0.1-parallel-build.patch With it applied openssl
  builds fine in parallel.
 
  heh, you've found me!  the referenced ticket says it's been merged, but
  it doesn't seem that way (at least for the latest branch).

 You are right it hasn't been merged. One problem with it is it doesn't
 work with BSD make (BSD make doesn't understand | in dependencies).

 true, but the patch posted to RT didn't include that, and that usage shows up
 only twice in the current Gentoo patch.  plenty of the other parts can be
 merged now so it's not nearly as terrible.

 i wonder if the | can be written instead like:
 lib:
 $(MAKE) subdirs
 $(MAKE) $(LIB)
 @touch lib
 $(LIB): $(LIBOBJ)
 ...

I don't know, but FWIW, I've also been working on -j stuff, but using
the mk1mf script (see the GitConfigure and GitMake scripts in master
and 1.0.2). My version is at least twice as fast as yours - on my
machine :-)

Possibly the right answer is to simply move to a single makefile...
__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   majord...@openssl.org


Re: parallel make broken

2013-06-22 Thread Mike Frysinger
On Saturday 22 June 2013 15:07:49 Ben Laurie wrote:
 On 22 June 2013 19:04, Mike Frysinger vap...@gentoo.org wrote:
  On Wednesday 19 June 2013 07:21:39 Ben Laurie wrote:
  On 18 June 2013 22:35, Mike Frysinger vap...@gentoo.org wrote:
   On Tuesday 18 June 2013 07:37:55 Richard Weinberger wrote:
   While building openssl-1.0.1e I noticed that the parallel build
   is broken.
   
   yes, it's pretty much always been broken
   
   I found this patch on the net:
   http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/open
   ssl /fi les/openssl-1.0.1-parallel-build.patch With it applied
   openssl builds fine in parallel.
   
   heh, you've found me!  the referenced ticket says it's been merged,
   but it doesn't seem that way (at least for the latest branch).
  
  You are right it hasn't been merged. One problem with it is it doesn't
  work with BSD make (BSD make doesn't understand | in dependencies).
  
  true, but the patch posted to RT didn't include that, and that usage
  shows up only twice in the current Gentoo patch.  plenty of the other
  parts can be merged now so it's not nearly as terrible.
  
  i wonder if the | can be written instead like:
  lib:
  $(MAKE) subdirs
  $(MAKE) $(LIB)
  @touch lib
  $(LIB): $(LIBOBJ)
  ...
 
 I don't know, but FWIW, I've also been working on -j stuff, but using
 the mk1mf script (see the GitConfigure and GitMake scripts in master
 and 1.0.2). My version is at least twice as fast as yours - on my
 machine :-)

to be fair, i was just trying to make it work rather than rewrite things

unfortunately mk1mf is a perl script, and i've been doing my damnedest to make 
sure perl isn't a requirement to build a base system.  we've been able to 
avoid this so far w/openssl ...

 Possibly the right answer is to simply move to a single makefile...

that might work
-mike


signature.asc
Description: This is a digitally signed message part.


parallel make broken

2013-06-18 Thread Richard Weinberger

Hi!

While building openssl-1.0.1e I noticed that the parallel build
is broken.
If I try to build openssl with make -j N where N is  1 the build fails
due to unresolved symbols.

E.g:
make[2]: Entering directory 
`/home/rw/work/vpnbox/v2/maker/_build/openssl/openssl-1.0.1e/apps'
make[2]: Warnung: Kein Jobserver verfügbar: -j1 wird gesetzt. »+« zur 
Ursprungsregel
gcc -I.. -I../.. -I../modes -I../asn1 -I../evp -I../../include  -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DTERMIO -O3 
-fomit-frame-pointer -Wall   -c -o rand_win.o rand_win.c

req.o: In function `genpkey_cb':
req.c:(.text+0x1e): undefined reference to `EVP_PKEY_CTX_get_app_data'
req.c:(.text+0x30): undefined reference to `EVP_PKEY_CTX_get_keygen_info'
req.c:(.text+0x51): undefined reference to `BIO_write'
req.c:(.text+0x71): undefined reference to `BIO_ctrl'
req.o: In function `do_X509_sign':
req.c:(.text+0xd0): undefined reference to `EVP_MD_CTX_init'
req.c:(.text+0xe4): undefined reference to `EVP_MD_CTX_init'
req.c:(.text+0x110): undefined reference to `EVP_DigestSignInit'
req.c:(.text+0x128): undefined reference to `sk_value'

make -j 1 on the other hand build perfectly fine.
I found this patch on the net:
http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/openssl/files/openssl-1.0.1-parallel-build.patch
With it applied openssl builds fine in parallel.

Is this a known issue?
I'm wondering why this patch is not mainline...

Thanks,
//richard

P.s: Please CC me, I'm not subscribed.
__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   majord...@openssl.org


Re: parallel make broken

2013-06-18 Thread Mike Frysinger
On Tuesday 18 June 2013 07:37:55 Richard Weinberger wrote:
 While building openssl-1.0.1e I noticed that the parallel build
 is broken.

yes, it's pretty much always been broken

 I found this patch on the net:
 http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/openssl/fi
 les/openssl-1.0.1-parallel-build.patch With it applied openssl builds fine
 in parallel.

heh, you've found me!  the referenced ticket says it's been merged, but it 
doesn't seem that way (at least for the latest branch).  the feedback loop 
w/the rt tracker has been kind of bad, so i lose incentive to fix keep posting 
patches.

the other thing you should do is to run:
make -j1 depend
make -jN
-mike


signature.asc
Description: This is a digitally signed message part.