I think I had the same issue with curl, I just filed an issue about this:
Post by Menno ValkemaHello Christian,
Thanks for your reply. A better example is the curl library. I've put
together an example to reproduce the behavior.
Attached a patch which includes the curl library into the hello
tutorial. It doesn't call any methods of the library, but it does
include <curl/curl.h> and shows the necessity of the extra INC_DIR
directive.
$ git clone https://github.com/genodelabs/genode.git hello_curl
$ cd hello_curl
Patch the sources with the attached hello_curl.patch
$ patch -p1 < ~/tmp/hello_curl.patch
$ ./tool/create_builddir linux_x86
$ cd build/linux_x86
$ echo 'REPOSITORIES += $(GENODE_DIR)/repos/hello_tutorial' >> \
etc/build.conf
$ echo 'REPOSITORIES += $(GENODE_DIR)/repos/libports' >> etc/build.conf
$ ../../tool/ports/prepare_port curl libc libssh openssl zlib
$ make run/hello
This compiles and runs fine (not doing anything functional).
Now remove the following line from
INC_DIR += $(REP_DIR)/../libports/src/lib/curl/spec/64bit/curl/
Running it again will give you an error about a missing "curlbuild.h".
Hence our question what are we doing wrong? Is this behavior by design,
or should we take different steps to include and use the library port?
Thanks, Menno
PS. I've tested lwip in a similar way, and you're right: the error is
not there.
--
Cyber Security Labs B.V. | https://nlcsl.com
Gooimeer 6-31 | 1411 DD Naarden | The Netherlands
Post by Christian HelmuthHello Menno,
Post by Menno ValkemaHowever in some cases this is not sufficient. For example lwip requires
INC_DIR += $(REP_DIR)/src/lib/lwip/include
(line from repos/libports/src/test/lwip/http_srv_static/target.mk)
If I remove this line from target.mk the test component compiles
without error.
Post by Menno ValkemaLeaving out this line will result in a compilation error of a local
include file. Looking at various library ports (mbedtls, polarssl, curl,
and probably more) we see similar behavior. Usually some library
configuration header file should be added manually to the include path
to make things work.
Could you please be more specific about the error message or maybe
point out an example in the public sources that breaks if the INC_DIR
directive is removed?
Regards
diff --git a/repos/hello_tutorial/run/hello.run b/repos/hello_tutorial/run/hello.run
index 0dd52d8..9f017f0 100644
--- a/repos/hello_tutorial/run/hello.run
+++ b/repos/hello_tutorial/run/hello.run
@@ -14,6 +14,7 @@ install_config {
<config>
<parent-provides>
<service name="LOG"/>
+ <service name="ROM"/>
</parent-provides>
<default-route>
<any-service> <parent/> <any-child/> </any-service>
@@ -31,7 +32,8 @@ install_config {
# Boot image
#
-build_boot_image { core init hello_client hello_server }
+build_boot_image { core init hello_client hello_server
+ curl.lib.so ld.lib.so libc.lib.so libcrypto.lib.so libssh.lib.so libssl.lib.so zlib.lib.so }
append qemu_args " -nographic "
diff --git a/repos/hello_tutorial/src/hello/client/main.cc b/repos/hello_tutorial/src/hello/client/main.cc
index f600117..19bc1e4 100644
--- a/repos/hello_tutorial/src/hello/client/main.cc
+++ b/repos/hello_tutorial/src/hello/client/main.cc
@@ -16,6 +16,7 @@
#include <base/log.h>
#include <hello_session/connection.h>
+#include <curl/curl.h>
Genode::size_t Component::stack_size() { return 64*1024; }
diff --git a/repos/hello_tutorial/src/hello/client/target.mk b/repos/hello_tutorial/src/hello/client/target.mk
index 3d69e29..7987979 100644
--- a/repos/hello_tutorial/src/hello/client/target.mk
+++ b/repos/hello_tutorial/src/hello/client/target.mk
@@ -1,3 +1,4 @@
TARGET = hello_client
SRC_CC = main.cc
-LIBS = base
+LIBS = base curl libc
+INC_DIR += $(REP_DIR)/../libports/src/lib/curl/spec/64bit/curl/
------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main