All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] buildroot openssl compile error
@ 2009-04-12  3:46 Brad Johnson
  2009-04-13 18:03 ` Peter Korsgaard
  2009-04-28 21:06 ` Thomas Petazzoni
  0 siblings, 2 replies; 14+ messages in thread
From: Brad Johnson @ 2009-04-12  3:46 UTC (permalink / raw)
  To: buildroot

I am using buildroot to cross-compile an embedded ARM system. Everything 
else works fine, but I can not get openssl to compile (I am trying to 
add openssh and it requires openssl and zlib). It can not find zlib.h, 
although I have zlib1g-dev installed on my build machine (a 386 Ubuntu 
system).
I have tried manually configuring openssl (./Configure 
--with-zlib-include=/usr/include), with no success.
Here is the error I get:

making all in crypto/comp...
make[3]: Entering directory 
`/home/brad/2240/buildroot-2009.02/build_arm/openssl
-0.9.8g/crypto/comp'
/opt/arm-linux/usr/bin/arm-linux-gcc -I.. -I../.. -I../../include -fPIC 
-DOPENSS
L_PIC -DZLIB_SHARED -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN 
-DHAVE_DLF
CN_H -DTERMIO -O3 -fomit-frame-pointer -Wall   -c -o comp_lib.o comp_lib.c
/opt/arm-linux/usr/bin/arm-linux-gcc -I.. -I../.. -I../../include -fPIC 
-DOPENSS
L_PIC -DZLIB_SHARED -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN 
-DHAVE_DLF
CN_H -DTERMIO -O3 -fomit-frame-pointer -Wall   -c -o comp_err.o comp_err.c
/opt/arm-linux/usr/bin/arm-linux-gcc -I.. -I../.. -I../../include -fPIC 
-DOPENSS
L_PIC -DZLIB_SHARED -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN 
-DHAVE_DLF
CN_H -DTERMIO -O3 -fomit-frame-pointer -Wall   -c -o c_rle.o c_rle.c
/opt/arm-linux/usr/bin/arm-linux-gcc -I.. -I../.. -I../../include -fPIC 
-DOPENSS
L_PIC -DZLIB_SHARED -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN 
-DHAVE_DLF
CN_H -DTERMIO -O3 -fomit-frame-pointer -Wall   -c -o c_zlib.o c_zlib.c
c_zlib.c:25:18: error: zlib.h: No such file or directory

Thanks in advance for any help with this.
...Brad

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Buildroot] buildroot openssl compile error
  2009-04-12  3:46 [Buildroot] buildroot openssl compile error Brad Johnson
@ 2009-04-13 18:03 ` Peter Korsgaard
  2009-04-13 20:08   ` Thomas Petazzoni
  2009-04-14  2:00   ` [Buildroot] buildroot openssl compile error Brad Johnson
  2009-04-28 21:06 ` Thomas Petazzoni
  1 sibling, 2 replies; 14+ messages in thread
From: Peter Korsgaard @ 2009-04-13 18:03 UTC (permalink / raw)
  To: buildroot

>>>>> "Brad" == Brad Johnson <bradjohn263@comcast.net> writes:

Hi,

 Brad> I am using buildroot to cross-compile an embedded ARM
 Brad> system. Everything else works fine, but I can not get openssl to
 Brad> compile (I am trying to add openssh and it requires openssl and
 Brad> zlib). It can not find zlib.h, although I have zlib1g-dev installed on
 Brad> my build machine (a 386 Ubuntu system).
 Brad> I have tried manually configuring openssl (./Configure
 Brad> --with-zlib-include=/usr/include), with no success.
 Brad> Here is the error I get:

Any special reason why you cannot use dropbear?

Is this with an internal or external toolchain?

There's no -I$(STAGING_DIR)/usr/include in the gcc invocation, so that
probably fails with an external toolchain.

 Brad> /opt/arm-linux/usr/bin/arm-linux-gcc -I.. -I../.. -I../../include
 Brad> -fPIC -DOPENSS
 Brad> L_PIC -DZLIB_SHARED -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN
 Brad> -DHAVE_DLF
 Brad> CN_H -DTERMIO -O3 -fomit-frame-pointer -Wall   -c -o c_zlib.o c_zlib.c
 Brad> c_zlib.c:25:18: error: zlib.h: No such file or directory

If not, do you have a build_arm/staging_dir/usr/include/zlib.h? Please
post your .config

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Buildroot] buildroot openssl compile error
  2009-04-13 18:03 ` Peter Korsgaard
@ 2009-04-13 20:08   ` Thomas Petazzoni
  2009-04-14  3:10     ` Brad Johnson
  2009-04-14  2:00   ` [Buildroot] buildroot openssl compile error Brad Johnson
  1 sibling, 1 reply; 14+ messages in thread
From: Thomas Petazzoni @ 2009-04-13 20:08 UTC (permalink / raw)
  To: buildroot

Le Mon, 13 Apr 2009 20:03:50 +0200,
Peter Korsgaard <jacmet@uclibc.org> a ?crit :

> There's no -I$(STAGING_DIR)/usr/include in the gcc invocation, so that
> probably fails with an external toolchain.

There's no need for -I$(STAGING_DIR)/usr/include with an external
toolchain if --sysroot $(STAGING_DIR) is passed (at least my
experiments confirm this). See r25879.

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Buildroot] buildroot openssl compile error
  2009-04-13 18:03 ` Peter Korsgaard
  2009-04-13 20:08   ` Thomas Petazzoni
@ 2009-04-14  2:00   ` Brad Johnson
  1 sibling, 0 replies; 14+ messages in thread
From: Brad Johnson @ 2009-04-14  2:00 UTC (permalink / raw)
  To: buildroot

Hello Peter,
What I have is a buildroot-built toolchain, but I initially installed 
the toolchain outside the buildroot tree so it could be shared by other 
developers (BR2_STAGING_DIR=/opt/arm-linux). I then changed it to use 
the externally installed toolchain, so other developers could start from 
the same shared config files and build a root file system without having 
to rebuild the toolchain every time.
I do have a build_arm/staging_dir/usr/include/zlib.h, but no 
/opt/arm-linux/usr/include/zlib.h.
And as I explain this, I think I understand that my problem is that when 
I add new packages (like ssh) to the buildroot config, I probably need 
to rebuild the externally installed toolchain so the proper header files 
get installed there? At the time, it seemed to me that it would be 
capable of finding the internal 
build_arm/staging_dir/usr/include/zlib.h, but it could be that it now 
only includes the external usr/include location?
I have attached my .config file.
Thanks,
Brad

On 4/13/2009 1:03 PM, Peter Korsgaard wrote:
>>>>>> "Brad" == Brad Johnson <bradjohn263@comcast.net> writes:
>>>>>>             
>
> Hi,
>
>  Brad> I am using buildroot to cross-compile an embedded ARM
>  Brad> system. Everything else works fine, but I can not get openssl to
>  Brad> compile (I am trying to add openssh and it requires openssl and
>  Brad> zlib). It can not find zlib.h, although I have zlib1g-dev installed on
>  Brad> my build machine (a 386 Ubuntu system).
>  Brad> I have tried manually configuring openssl (./Configure
>  Brad> --with-zlib-include=/usr/include), with no success.
>  Brad> Here is the error I get:
>
> Any special reason why you cannot use dropbear?
>
> Is this with an internal or external toolchain?
>
> There's no -I$(STAGING_DIR)/usr/include in the gcc invocation, so that
> probably fails with an external toolchain.
>
>  Brad> /opt/arm-linux/usr/bin/arm-linux-gcc -I.. -I../.. -I../../include
>  Brad> -fPIC -DOPENSS
>  Brad> L_PIC -DZLIB_SHARED -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN
>  Brad> -DHAVE_DLF
>  Brad> CN_H -DTERMIO -O3 -fomit-frame-pointer -Wall   -c -o c_zlib.o c_zlib.c
>  Brad> c_zlib.c:25:18: error: zlib.h: No such file or directory
>
> If not, do you have a build_arm/staging_dir/usr/include/zlib.h? Please
> post your .config
>
>   
> ------------------------------------------------------------------------
>
>
> No virus found in this incoming message.
> Checked by AVG - www.avg.com 
> Version: 8.0.238 / Virus Database: 270.11.54/2056 - Release Date: 04/13/09 05:51:00
>
>   
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: buildroot.config
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20090413/6964a653/attachment-0001.diff>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Buildroot] buildroot openssl compile error
  2009-04-13 20:08   ` Thomas Petazzoni
@ 2009-04-14  3:10     ` Brad Johnson
  2009-04-14  7:09       ` Thomas Petazzoni
  0 siblings, 1 reply; 14+ messages in thread
From: Brad Johnson @ 2009-04-14  3:10 UTC (permalink / raw)
  To: buildroot

Hello Thomas,
I tried to build the latest (4/13/09) svn version of buildroot with my 
external buildroot toolchain (cross-compiler for arm). I assume the fix 
described in r25879 is in this version?
I still get an error compiling openssl:

/opt/arm-linux/usr/bin/arm-linux-gcc -I.. -I../.. -I../../include -fPIC 
-DOPENSS
L_PIC -DZLIB_SHARED -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN 
-DHAVE_DLF
CN_H -DTERMIO -O3 -fomit-frame-pointer -Wall   -c -o c_zlib.o c_zlib.c
c_zlib.c:25:18: error: zlib.h: No such file or directory

I do not see a --sysroot gcc argument. There is a 
build_arm/staging_dir/usr/include/zlib.h.
Please advise me as to how I can build openssl within buildroot using an 
external toolchain.

Thanks,
Brad

On 4/13/2009 3:08 PM, Thomas Petazzoni wrote:
> Le Mon, 13 Apr 2009 20:03:50 +0200,
> Peter Korsgaard <jacmet@uclibc.org> a ?crit :
>
>   
>> There's no -I$(STAGING_DIR)/usr/include in the gcc invocation, so that
>> probably fails with an external toolchain.
>>     
>
> There's no need for -I$(STAGING_DIR)/usr/include with an external
> toolchain if --sysroot $(STAGING_DIR) is passed (at least my
> experiments confirm this). See r25879.
>
> Thomas
>   
> ------------------------------------------------------------------------
>
>
> No virus found in this incoming message.
> Checked by AVG - www.avg.com 
> Version: 8.0.238 / Virus Database: 270.11.54/2056 - Release Date: 04/13/09 05:51:00
>
>   

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Buildroot] buildroot openssl compile error
  2009-04-14  3:10     ` Brad Johnson
@ 2009-04-14  7:09       ` Thomas Petazzoni
  2009-04-14  8:41         ` Thomas Petazzoni
  0 siblings, 1 reply; 14+ messages in thread
From: Thomas Petazzoni @ 2009-04-14  7:09 UTC (permalink / raw)
  To: buildroot

Hi Brad,

Le Mon, 13 Apr 2009 22:10:39 -0500,
Brad Johnson <bradjohn263@comcast.net> a ?crit :

> /opt/arm-linux/usr/bin/arm-linux-gcc -I.. -I../.. -I../../include
> -fPIC -DOPENSS
> L_PIC -DZLIB_SHARED -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN 
> -DHAVE_DLF
> CN_H -DTERMIO -O3 -fomit-frame-pointer -Wall   -c -o c_zlib.o c_zlib.c
> c_zlib.c:25:18: error: zlib.h: No such file or directory
> 
> I do not see a --sysroot gcc argument. There is a 
> build_arm/staging_dir/usr/include/zlib.h.
> Please advise me as to how I can build openssl within buildroot using
> an external toolchain.

Thanks for the report. I've just run the compilation of openssl to
reproduce the issue. I strongly suspect that the following part of
openssl.mk is the culprit :

$(OPENSSL_TARGET_BUILD):
        $(MAKE1) CC=$(TARGET_CC) -C $(OPENSSL_DIR) all build-shared
        $(MAKE1) CC=$(TARGET_CC) -C $(OPENSSL_DIR) do_linux-shared
        touch $@

Because by passing CC=$(TARGET_CC) it overrides the value of CC passed
in $(TARGET_CONFIGURE_ARGS), which is CC="$(TARGET_CC)
$(TARGET_CFLAGS)".

I'm looking into this.

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Buildroot] buildroot openssl compile error
  2009-04-14  7:09       ` Thomas Petazzoni
@ 2009-04-14  8:41         ` Thomas Petazzoni
  2009-04-15  9:06           ` [Buildroot] OpenSSL build system knowledge somewhere ? Thomas Petazzoni
  0 siblings, 1 reply; 14+ messages in thread
From: Thomas Petazzoni @ 2009-04-14  8:41 UTC (permalink / raw)
  To: buildroot

Le Tue, 14 Apr 2009 09:09:07 +0200,
Thomas Petazzoni <thomas.petazzoni@free-electrons.com> a ?crit :

> $(OPENSSL_TARGET_BUILD):
>         $(MAKE1) CC=$(TARGET_CC) -C $(OPENSSL_DIR) all build-shared
>         $(MAKE1) CC=$(TARGET_CC) -C $(OPENSSL_DIR) do_linux-shared
>         touch $@

Here, using CC="$(TARGET_CC) $(TARGET_CFLAGS)" allows openssl to find
zlib.h properly. However, it fails later with make thinking that the
-Os and --sysroot options are for him (and not for gcc). The openssl
build system looks strange, I don't have the time to look at time now.
Maybe tomorrow.

Sincerly,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Buildroot] OpenSSL build system knowledge somewhere ?
  2009-04-14  8:41         ` Thomas Petazzoni
@ 2009-04-15  9:06           ` Thomas Petazzoni
  2009-04-15 12:57             ` Peter Korsgaard
  0 siblings, 1 reply; 14+ messages in thread
From: Thomas Petazzoni @ 2009-04-15  9:06 UTC (permalink / raw)
  To: buildroot

Le Tue, 14 Apr 2009 10:41:34 +0200,
Thomas Petazzoni <thomas.petazzoni@free-electrons.com> a ?crit :

> Here, using CC="$(TARGET_CC) $(TARGET_CFLAGS)" allows openssl to find
> zlib.h properly. However, it fails later with make thinking that the
> -Os and --sysroot options are for him (and not for gcc). The openssl
> build system looks strange, I don't have the time to look at time now.
> Maybe tomorrow.

I had a quick look, and the openssl build system is definitely strange.
I don't see how one can pass custom CFLAGS to this build system (and
this is needed to pass --sysroot $(STAGING_DIR)).

The Configure script usage is :

==================================================================
Usage: Configure [no-<cipher> ...] [enable-<cipher> ...]
[experimental-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx]
[no-hw-xxx|no-hw] [[no-]threads] [[no-]shared] [[no-]zlib|zlib-dynamic]
[enable-montasm] [no-asm] [no-dso] [no-krb5] [386] [--prefix=DIR]
[--openssldir=OPENSSLDIR] [--with-xxx[=vvv]] [--test-sanity]
os/compiler[:flags]
==================================================================

I tried to use os/compiler[:flags] to pass flags, but didn't succeed.

On
http://www.therareair.com/2009/01/01/tutorial-how-to-compile-openssl-for-the-iphone/,
where they explain how to compile OpenSSL for the iPhone, they suggest
to directly hack the Configure script to add the proper CFLAGS.

Any suggestion on this ?

Thanks!

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Buildroot] OpenSSL build system knowledge somewhere ?
  2009-04-15  9:06           ` [Buildroot] OpenSSL build system knowledge somewhere ? Thomas Petazzoni
@ 2009-04-15 12:57             ` Peter Korsgaard
  2009-04-15 13:41               ` Thomas Petazzoni
  2009-04-15 13:59               ` Gustavo Zacarias
  0 siblings, 2 replies; 14+ messages in thread
From: Peter Korsgaard @ 2009-04-15 12:57 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> Le Tue, 14 Apr 2009 10:41:34 +0200,
 Thomas> Thomas Petazzoni <thomas.petazzoni@free-electrons.com> a ?crit :

 >> Here, using CC="$(TARGET_CC) $(TARGET_CFLAGS)" allows openssl to find
 >> zlib.h properly. However, it fails later with make thinking that the
 >> -Os and --sysroot options are for him (and not for gcc). The openssl
 >> build system looks strange, I don't have the time to look at time now.
 >> Maybe tomorrow.

 Thomas> I had a quick look, and the openssl build system is
 Thomas> definitely strange.  I don't see how one can pass custom
 Thomas> CFLAGS to this build system (and this is needed to pass
 Thomas> --sysroot $(STAGING_DIR)).

From a quick look it seems to just be a matter of adding
CFLAG='$(TARGET_CFLAGS) <extra flags>' on the make command line, where
<extra flags> are the flags openssl uses internally (something like
-DOPENSSL_THREADS -D_REENTRANT -DDSO_DLCFN -DHAVE_DLFCN_H -DTERMIO).

The question is why is all of a sudden failed? I thought I had seen
positive reports with external toolchains after r23458, where openssl
was changed to Makefile.autotools.in format. Notice that we used to
patch up the Makefile with sed to change the compiler flags.

I'm wondering if it wouldn't be simpler to use a wrapper script around
gcc / g++ when using external toolchains, which would add -sysroot
and -I$(STAGING_DIR)/include -I$(STAGING_DIR)/usr/include to the
argument list instead of all of this.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Buildroot] OpenSSL build system knowledge somewhere ?
  2009-04-15 12:57             ` Peter Korsgaard
@ 2009-04-15 13:41               ` Thomas Petazzoni
  2009-04-15 13:50                 ` Peter Korsgaard
  2009-04-15 13:59               ` Gustavo Zacarias
  1 sibling, 1 reply; 14+ messages in thread
From: Thomas Petazzoni @ 2009-04-15 13:41 UTC (permalink / raw)
  To: buildroot

Le Wed, 15 Apr 2009 14:57:38 +0200,
Peter Korsgaard <jacmet@uclibc.org> a ?crit :

> From a quick look it seems to just be a matter of adding
> CFLAG='$(TARGET_CFLAGS) <extra flags>' on the make command line, where
> <extra flags> are the flags openssl uses internally (something like
> -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLCFN -DHAVE_DLFCN_H -DTERMIO).

How do I know, in a proper way, what these <extra flags> are ? (I mean,
without hardcoding them in Buildroot's .mk file)

> The question is why is all of a sudden failed?

I have no idea, I've never myself compiled openssl with external
toolchain.

> I thought I had seen positive reports with external toolchains after
> r23458, where openssl was changed to Makefile.autotools.in format.
> Notice that we used to patch up the Makefile with sed to change the
> compiler flags.

I'd say that something like
http://sources.busybox.net/index.py/trunk/buildroot/package/openssl/openssl.mk?revision=22690&view=markup
(before the Makefile.autotools.in conversion) was probably working
since the Configure script was patched with the value of
$(TARGET_CFLAGS).

What's your suggestion to work around the issue ?

> I'm wondering if it wouldn't be simpler to use a wrapper script around
> gcc / g++ when using external toolchains, which would add -sysroot
> and -I$(STAGING_DIR)/include -I$(STAGING_DIR)/usr/include to the
> argument list instead of all of this.

-I$(STAGING_DIR)/include and -I$(STAGING_DIR)/usr/include are not
needed when --sysroot $(STAGING) is given.

Moreover, the --sysroot option is just part of $(TARGET_CFLAGS), which
might as well contain other flags (march, mtune, mcpu, Os, O2 or
whatever), so the .mk should be written so that the build process of
all packages really take into account $(TARGET_CFLAGS). And if they do,
then there's no point in adding a wrapper script specially for the
--sysroot case.

Cheers,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Buildroot] OpenSSL build system knowledge somewhere ?
  2009-04-15 13:41               ` Thomas Petazzoni
@ 2009-04-15 13:50                 ` Peter Korsgaard
  2009-04-15 19:28                   ` Gustavo Zacarias
  0 siblings, 1 reply; 14+ messages in thread
From: Peter Korsgaard @ 2009-04-15 13:50 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

Hi,

 >> From a quick look it seems to just be a matter of adding
 >> CFLAG='$(TARGET_CFLAGS) <extra flags>' on the make command line, where
 >> <extra flags> are the flags openssl uses internally (something like
 >> -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLCFN -DHAVE_DLFCN_H -DTERMIO).

 Thomas> How do I know, in a proper way, what these <extra flags> are ? (I mean,
 Thomas> without hardcoding them in Buildroot's .mk file)

You don't. Either you do like we used to do and fix the makefile with
sed (s/^CFLAG = /CFLAG = -sysroot .../) and live with the fact that
openssl likes to compile with -O3 no mather what optimization level
you have selected in BR, or you hardcode the list in openssl.mk (it
probably doesn't change that often).

 >> The question is why is all of a sudden failed?

 Thomas> I have no idea, I've never myself compiled openssl with
 Thomas> external toolchain.

Ahh ok.

 Thomas> What's your suggestion to work around the issue ?

One of the options above (hardcoded list or sed invocation).

 Thomas> Moreover, the --sysroot option is just part of
 Thomas> $(TARGET_CFLAGS), which might as well contain other flags
 Thomas> (march, mtune, mcpu, Os, O2 or whatever), so the .mk should
 Thomas> be written so that the build process of all packages really
 Thomas> take into account $(TARGET_CFLAGS). And if they do, then
 Thomas> there's no point in adding a wrapper script specially for the
 Thomas> --sysroot case.

Ok.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Buildroot] OpenSSL build system knowledge somewhere ?
  2009-04-15 12:57             ` Peter Korsgaard
  2009-04-15 13:41               ` Thomas Petazzoni
@ 2009-04-15 13:59               ` Gustavo Zacarias
  1 sibling, 0 replies; 14+ messages in thread
From: Gustavo Zacarias @ 2009-04-15 13:59 UTC (permalink / raw)
  To: buildroot

Peter Korsgaard wrote:

> From a quick look it seems to just be a matter of adding
> CFLAG='$(TARGET_CFLAGS) <extra flags>' on the make command line, where
> <extra flags> are the flags openssl uses internally (something like
> -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLCFN -DHAVE_DLFCN_H -DTERMIO).
> 
> The question is why is all of a sudden failed? I thought I had seen
> positive reports with external toolchains after r23458, where openssl
> was changed to Makefile.autotools.in format. Notice that we used to
> patch up the Makefile with sed to change the compiler flags.
> 
> I'm wondering if it wouldn't be simpler to use a wrapper script around
> gcc / g++ when using external toolchains, which would add -sysroot
> and -I$(STAGING_DIR)/include -I$(STAGING_DIR)/usr/include to the
> argument list instead of all of this.

Adding this in $(OPENSSL_TARGET_CONFIGURE) just before the end:
$(SED) "s:-march=[-a-z0-9] ::" -e "s:-mcpu=[-a-z0-9] ::g"
$(OPENSSL_DIR)/Makefile
$(SED) "s:-O[0-9]:$(TARGET_CFLAGS):" $(OPENSSL_DIR)/Makefile
Gets rid of the "guesstimate" optimizations openssl does and we win on
size optimization while at it.

For ARM EABI old size:
1542542 libcrypto.so.0.9.8
296769 libssl.so.0.9.8

New size:
1435414 libcrypto.so.0.9.8
279543 libssl.so.0.9.8

Regards.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Buildroot] OpenSSL build system knowledge somewhere ?
  2009-04-15 13:50                 ` Peter Korsgaard
@ 2009-04-15 19:28                   ` Gustavo Zacarias
  0 siblings, 0 replies; 14+ messages in thread
From: Gustavo Zacarias @ 2009-04-15 19:28 UTC (permalink / raw)
  To: buildroot

Peter Korsgaard wrote:

>  Thomas> How do I know, in a proper way, what these <extra flags> are ? (I mean,
>  Thomas> without hardcoding them in Buildroot's .mk file)
> 
> You don't. Either you do like we used to do and fix the makefile with
> sed (s/^CFLAG = /CFLAG = -sysroot .../) and live with the fact that
> openssl likes to compile with -O3 no mather what optimization level
> you have selected in BR, or you hardcode the list in openssl.mk (it
> probably doesn't change that often).

Ok this patch fixes it for me.
Tested plain snapshot with an external toolchain and it fails, patch and
it's fixed, i suggest Thomas gives it a spin too.
Also moved c_rehash removal to always since it depends on perl and i
doubt anyone uses it.
However there are other failures i've seen with external toolchain support.
First in line was sstrip, it doesn't get built when external toolchain
is on and it's not a standard toolchain tool so it should be strip-only
when using external or build it as usual.
Second is openntpd that doesn't like my toolchain prefix.
And i left it there, it's not like i'm too interested in external
toolchains ;-)
Enjoy.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: buildroot-openssl-external-toolchain.patch
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20090415/1005056b/attachment.diff>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Buildroot] buildroot openssl compile error
  2009-04-12  3:46 [Buildroot] buildroot openssl compile error Brad Johnson
  2009-04-13 18:03 ` Peter Korsgaard
@ 2009-04-28 21:06 ` Thomas Petazzoni
  1 sibling, 0 replies; 14+ messages in thread
From: Thomas Petazzoni @ 2009-04-28 21:06 UTC (permalink / raw)
  To: buildroot

Le Sat, 11 Apr 2009 22:46:59 -0500,
Brad Johnson <bradjohn263@comcast.net> a ?crit :

> /opt/arm-linux/usr/bin/arm-linux-gcc -I.. -I../.. -I../../include
> -fPIC -DOPENSS
> L_PIC -DZLIB_SHARED -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN 
> -DHAVE_DLF
> CN_H -DTERMIO -O3 -fomit-frame-pointer -Wall   -c -o c_zlib.o c_zlib.c
> c_zlib.c:25:18: error: zlib.h: No such file or directory

This issue has been fixed by r26226.

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2009-04-28 21:06 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-04-12  3:46 [Buildroot] buildroot openssl compile error Brad Johnson
2009-04-13 18:03 ` Peter Korsgaard
2009-04-13 20:08   ` Thomas Petazzoni
2009-04-14  3:10     ` Brad Johnson
2009-04-14  7:09       ` Thomas Petazzoni
2009-04-14  8:41         ` Thomas Petazzoni
2009-04-15  9:06           ` [Buildroot] OpenSSL build system knowledge somewhere ? Thomas Petazzoni
2009-04-15 12:57             ` Peter Korsgaard
2009-04-15 13:41               ` Thomas Petazzoni
2009-04-15 13:50                 ` Peter Korsgaard
2009-04-15 19:28                   ` Gustavo Zacarias
2009-04-15 13:59               ` Gustavo Zacarias
2009-04-14  2:00   ` [Buildroot] buildroot openssl compile error Brad Johnson
2009-04-28 21:06 ` Thomas Petazzoni

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.