compiling wvstreams with uClibc . Any tips ?

261 views
Skip to first unread message

G.P.

unread,
Jul 9, 2008, 12:07:12 PM7/9/08
to WvStreams Mailing List
Hey All;

Has anyone tried compiling the wvstreams library with uClibc ?

I've given it a shot and come across a couple of compile issues.

utils/wvtask.cc uses setcontext and makecontext which aren't
defined in uClibc.

Wondering if someone has attempted a uClibc compile before, and has
any pointers.


G.P.

Peter Zion

unread,
Jul 9, 2008, 12:42:35 PM7/9/08
to wvstrea...@googlegroups.com
Hey G.P.,

The use of setcontext and makecontext to manage the cooperative multitasking mechanism provided by WvTask is, I believe, a fairly recent addition to WvStreams.  Older versions of WvStreams used setjmp/longjmp to provide similar functionality; this implementation, while probably somewhat less robust, is probably more portable.

As such, you might consider seeing if an older version of WvStreams doesn't have this problem with uClibc.  If so, it may be possible to replace the newer wvtask.cc and wvtask.h with the older ones with little modification; IIRC the WvTask code is not tightly-coupled with the rest of WvStreams.

In the long term, the WvStreams developers might consider having ./configure take care of this.

pz

G.P.

unread,
Jul 9, 2008, 2:43:55 PM7/9/08
to WvStreams Mailing List
Thanks for the idea;

I'm going to try and merge the new context setup with the old jmp
setup via ifdef's for __UCLIBC__

I'll post the results as a patch for uClibc support.

GP

On Jul 9, 9:42 am, "Peter Zion" <peter.z...@gmail.com> wrote:
> Hey G.P.,
>
> The use of setcontext and makecontext to manage the cooperative multitasking
> mechanism provided by WvTask is, I believe, a fairly recent addition to
> WvStreams.  Older versions of WvStreams used setjmp/longjmp to provide
> similar functionality; this implementation, while probably somewhat less
> robust, is probably more portable.
>
> As such, you might consider seeing if an older version of WvStreams doesn't
> have this problem with uClibc.  If so, it may be possible to replace the
> newer wvtask.cc and wvtask.h with the older ones with little modification;
> IIRC the WvTask code is not tightly-coupled with the rest of WvStreams.
>
> In the long term, the WvStreams developers might consider having ./configure
> take care of this.
>
> pz
>

Pierre Phaneuf

unread,
Jul 9, 2008, 2:52:02 PM7/9/08
to wvstrea...@googlegroups.com
On Wed, Jul 9, 2008 at 2:43 PM, G.P. <g.p.wa...@gmail.com> wrote:

> I'm going to try and merge the new context setup with the old jmp
> setup via ifdef's for __UCLIBC__

You should add an autoconf test that looks for setcontext or
makecontext instead. Mac OS X is in the same situation, for example.
This way, it'll switch to setjmp on any platform which doesn't have
makecontext/setcontext, hopefully making it work.

--
http://pphaneuf.livejournal.com/

Avery Pennarun

unread,
Jul 9, 2008, 3:31:41 PM7/9/08
to wvstrea...@googlegroups.com

Right.

Here's a patch that doesn't do that. It simply switches back to the
old setjmp/longjmp version without using any #ifdefs at all. This
seems to still pass all the wvstreams unit tests for me.

If someone wants to change autoconf to add a
HAVE_MKCONTEXT or something, conditionally add

typedef ucontext_t WvTaskContext;
or
typedef jmpbuf WvTaskContext;

And then ifdef the rest, I think we'd have something worth committing. G.P.,
want to give it a try?

---
include/wvtask.h | 12 ++----
utils/wvtask.cc | 115 ++++++-----------------------------------------------
2 files changed, 17 insertions(+), 110 deletions(-)

diff --git a/include/wvtask.h b/include/wvtask.h
index 31c39c0..5f67844 100644
--- a/include/wvtask.h
+++ b/include/wvtask.h
@@ -24,7 +24,6 @@
#include "wvstreamsdebugger.h"
#include "wvstringlist.h"
#include "setjmp.h"
-#include <ucontext.h>

#define WVTASK_MAGIC 0x123678

@@ -50,12 +49,10 @@ class WvTask
int tid;

size_t stacksize;
- void *stack;
bool running, recycled;

WvTaskMan &man;
- ucontext_t mystate; // used for resuming the task
- ucontext_t func_call, func_return;
+ jmp_buf mystate; // used for resuming the task

TaskFunc *func;
void *userdata;
@@ -91,16 +88,15 @@ class WvTaskMan
static void stackmaster();
static void _stackmaster();
static void do_task();
- static void call_func(WvTask *task);

static char *stacktop;
- static ucontext_t stackmaster_task;
+ static jmp_buf stackmaster_task;

static WvTask *stack_target;
- static ucontext_t get_stack_return;
+ static jmp_buf get_stack_return;

static WvTask *current_task;
- static ucontext_t toplevel;
+ static jmp_buf toplevel;

WvTaskMan();
virtual ~WvTaskMan();
diff --git a/utils/wvtask.cc b/utils/wvtask.cc
index d30808b..32128a1 100644
--- a/utils/wvtask.cc
+++ b/utils/wvtask.cc
@@ -32,10 +32,6 @@ char *alloca ();
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
-#include <sys/mman.h>
-#include <signal.h>
-#include <unistd.h>
-#include <sys/resource.h>

#ifdef HAVE_VALGRIND_MEMCHECK_H
#include <valgrind/memcheck.h>
@@ -60,7 +56,7 @@ int WvTask::taskcount, WvTask::numtasks, WvTask::numrunning;
WvTaskMan *WvTaskMan::singleton;
int WvTaskMan::links, WvTaskMan::magic_number;
WvTaskList WvTaskMan::all_tasks, WvTaskMan::free_tasks;
-ucontext_t WvTaskMan::stackmaster_task, WvTaskMan::get_stack_return,
+jmp_buf WvTaskMan::stackmaster_task, WvTaskMan::get_stack_return,
WvTaskMan::toplevel;
WvTask *WvTaskMan::current_task, *WvTaskMan::stack_target;
char *WvTaskMan::stacktop;
@@ -198,9 +194,7 @@ WvTaskMan::WvTaskMan()

stacktop = (char *)alloca(0);

- context_return = 0;
- assert(getcontext(&get_stack_return) == 0);
- if (context_return == 0)
+ if (setjmp(get_stack_return) == 0)
{
// initial setup - start the stackmaster() task (never returns!)
stackmaster();
@@ -257,22 +251,18 @@ int WvTaskMan::run(WvTask &task, int val)

WvTask *old_task = current_task;
current_task = &task;
- ucontext_t *state;
+ jmp_buf *state;

if (!old_task)
state = &toplevel; // top-level call (not in an actual task yet)
else
state = &old_task->mystate;

- context_return = 0;
- assert(getcontext(state) == 0);
- int newval = context_return;
+ int newval = setjmp(*state);
if (newval == 0)
{
// saved the state, now run the task.
- context_return = val;
- setcontext(&task.mystate);
- return -1;
+ longjmp(task.mystate, val);
}
else
{
@@ -303,8 +293,6 @@ int WvTaskMan::yield(int val)
assert(*current_task->stack_magic == WVTASK_MAGIC);

#if TASK_DEBUG
- if (use_shared_stack())
- {
size_t stackleft;
char *stackbottom = (char *)(current_task->stack_magic + 1);
for (stackleft = 0; stackleft < current_task->stacksize; stackleft++)
@@ -315,18 +303,13 @@ int WvTaskMan::yield(int val)
Dprintf("WvTaskMan: remaining stack after #%d (%s): %ld/%ld\n",
current_task->tid, current_task->name.cstr(), (long)stackleft,
(long)current_task->stacksize);
- }
#endif

- context_return = 0;
- assert(getcontext(&current_task->mystate) == 0);
- int newval = context_return;
+ int newval = setjmp(current_task->mystate);
if (newval == 0)
{
// saved the task state; now yield to the toplevel.
- context_return = val;
- setcontext(&toplevel);
- return -1;
+ longjmp(toplevel, val);
}
else
{
@@ -340,34 +323,14 @@ int WvTaskMan::yield(int val)

void WvTaskMan::get_stack(WvTask &task, size_t size)
{
- context_return = 0;
- assert(getcontext(&get_stack_return) == 0);
- if (context_return == 0)
+ if (setjmp(get_stack_return) == 0)
{
assert(magic_number == -WVTASK_MAGIC);
assert(task.magic_number == WVTASK_MAGIC);

- if (!use_shared_stack())
- {
-#if defined(__linux__) && (defined(__386__) || defined(__i386) || defined(__i386__))
- static char *next_stack_addr = (char *)0xB0000000;
- static const size_t stack_shift = 0x00100000;
-
- next_stack_addr -= stack_shift;
-#else
- static char *next_stack_addr = NULL;
-#endif
-
- task.stack = mmap(next_stack_addr, task.stacksize,
- PROT_READ | PROT_WRITE,
- MAP_PRIVATE | MAP_ANONYMOUS,
- -1, 0);
- }
-
// initial setup
stack_target = &task;
- context_return = size/1024 + (size%1024 > 0);
- setcontext(&stackmaster_task);
+ longjmp(stackmaster_task, size/1024 + (size%1024 > 0));
}
else
{
@@ -404,9 +367,7 @@ void WvTaskMan::_stackmaster()
{
assert(magic_number == -WVTASK_MAGIC);

- context_return = 0;
- assert(getcontext(&stackmaster_task) == 0);
- val = context_return;
+ val = setjmp(stackmaster_task);
if (val == 0)
{
assert(magic_number == -WVTASK_MAGIC);
@@ -414,19 +375,13 @@ void WvTaskMan::_stackmaster()
// just did setjmp; save stackmaster's current state (with
// all current stack allocations) and go back to get_stack
// (or the constructor, if that's what called us)
- context_return = 1;
- setcontext(&get_stack_return);
+ longjmp(get_stack_return, 1);
}
else
{
valgrind_fix(stacktop);
assert(magic_number == -WVTASK_MAGIC);

- total = (val+1) * (size_t)1024;
-
- if (!use_shared_stack())
- total = 1024; // enough to save the do_task stack frame
-
// set up a stack frame for the new task. This runs once
// per get_stack.
//alloc_stack_and_switch(total);
@@ -435,6 +390,7 @@ void WvTaskMan::_stackmaster()
assert(magic_number == -WVTASK_MAGIC);

// allocate the stack area so we never use it again
+ total = (val+1) * (size_t)1024;
alloca(total);

// a little sentinel so we can detect stack overflows
@@ -451,17 +407,6 @@ void WvTaskMan::_stackmaster()
}


-void WvTaskMan::call_func(WvTask *task)
-{
- Dprintf("WvTaskMan: calling task #%d (%s)\n",
- task->tid, (const char *)task->name);
- task->func(task->userdata);
- Dprintf("WvTaskMan: returning from task #%d (%s)\n",
- task->tid, (const char *)task->name);
- context_return = 1;
-}
-
-
void WvTaskMan::do_task()
{
assert(magic_number == -WVTASK_MAGIC);
@@ -469,9 +414,7 @@ void WvTaskMan::do_task()
assert(task->magic_number == WVTASK_MAGIC);

// back here from longjmp; someone wants stack space.
- context_return = 0;
- assert(getcontext(&task->mystate) == 0);
- if (context_return == 0)
+ if (setjmp(task->mystate) == 0)
{
// done the setjmp; that means the target task now has
// a working jmp_buf all set up. Leave space on the stack
@@ -497,30 +440,10 @@ void WvTaskMan::do_task()

if (task->func && task->running)
{
- if (use_shared_stack())
- {
// this is the task's main function. It can call yield()
// to give up its timeslice if it wants. Either way, it
// only returns to *us* if the function actually finishes.
task->func(task->userdata);
- }
- else
- {
- assert(getcontext(&task->func_call) == 0);
- task->func_call.uc_stack.ss_size = task->stacksize;
- task->func_call.uc_stack.ss_sp = task->stack;
- task->func_call.uc_stack.ss_flags = 0;
- task->func_call.uc_link = &task->func_return;
- Dprintf("WvTaskMan: makecontext #%d (%s)\n",
- task->tid, (const char *)task->name);
- makecontext(&task->func_call,
- (void (*)(void))call_func, 1, task);
-
- context_return = 0;
- assert(getcontext(&task->func_return) == 0);
- if (context_return == 0)
- setcontext(&task->func_call);
- }

// the task's function terminated.
task->name = "DEAD";
@@ -536,25 +459,13 @@ void WvTaskMan::do_task()
const void *WvTaskMan::current_top_of_stack()
{
extern const void *__libc_stack_end;
- if (use_shared_stack() || current_task == NULL)
return __libc_stack_end;
- else
- return (const char *)current_task->stack + current_task->stacksize;
}


size_t WvTaskMan::current_stacksize_limit()
{
- if (use_shared_stack() || current_task == NULL)
- {
- struct rlimit rl;
- if (getrlimit(RLIMIT_STACK, &rl) == 0)
- return size_t(rl.rlim_cur);
- else
return 0;
- }
- else
- return size_t(current_task->stacksize);
}


--
1.5.4.3

G.P.

unread,
Jul 9, 2008, 7:09:45 PM7/9/08
to WvStreams Mailing List
Excellent,

working on it right now.
Just chasing down a library path'ing problem.

GP

On Jul 9, 12:31 pm, Avery Pennarun <apenw...@gmail.com> wrote:
> On Wed, Jul 09, 2008 at 02:52:02PM -0400, Pierre Phaneuf wrote:
> ...
>
> read more »
Message has been deleted

thE_29

unread,
Sep 1, 2008, 5:00:51 PM9/1/08
to WvStreams Mailing List
Do i have to run patch < TEXT_FROM_ABOVE ?

When i try this, i got many errors! So which version did you use?

Avery Pennarun

unread,
Sep 1, 2008, 8:44:52 PM9/1/08
to wvstrea...@googlegroups.com
On Mon, Sep 1, 2008 at 5:00 PM, thE_29 <bEh...@gmail.com> wrote:
> Do i have to run patch < TEXT_FROM_ABOVE ?

That should work.

> When i try this, i got many errors! So which version did you use?

Hmm, I think it will apply to the most recent version in git.
However, you have to make sure to use a non-corrupted text version of
the message if you want it to work. Your mailer should have some kind
of "save this message as raw text" option somewhere. Don't use
cut-and-paste!

Avery

thE_29

unread,
Sep 2, 2008, 4:09:25 AM9/2/08
to WvStreams Mailing List
I used copy and paste, because i watch this in the browser!

However, i change the file with an editor. But when i try to compile
it (for Oleg-FW - Optware/NSLU Linux) i stil got some errors.

Like in streams/wvistreamlist.cc:193 __assert_fail not referenced and
__ASSERT_VOID_CAST not referenced.

I figured out that this is maybe a problem when you use uClibc instead
of glibc.

Someone knows how to avoid this?

On 2 Sep., 02:44, "Avery Pennarun" <apenw...@gmail.com> wrote:

Avery Pennarun

unread,
Sep 2, 2008, 12:36:08 PM9/2/08
to wvstrea...@googlegroups.com
On Tue, Sep 02, 2008 at 01:09:25AM -0700, thE_29 wrote:

> I used copy and paste, because i watch this in the browser!

If you're using gmail (for example), you can save the original text. Click
the down arrow next to Reply, then pick Show Original. Then use File | Save
in your web browser.

> However, i change the file with an editor. But when i try to compile
> it (for Oleg-FW - Optware/NSLU Linux) i stil got some errors.
>
> Like in streams/wvistreamlist.cc:193 __assert_fail not referenced and
> __ASSERT_VOID_CAST not referenced.
>
> I figured out that this is maybe a problem when you use uClibc instead
> of glibc.

Yes, it looks like we had a #define in wvassert.h that's assuming
Linux==glibc. Try this:


commit 48c7618b0efb68c4d6dfed87f83a3263617b2937
Author: Avery Pennarun <apen...@gmail.com>
Date: Tue Sep 2 12:31:03 2008 -0400

wvassert: default to old-fashioned assert if no __GLIBC__, not just on win32.

This hopefully helps with uclibc compile problems.

diff --git a/include/wvassert.h b/include/wvassert.h
index 86d19d2..2a5eb0a 100644
--- a/include/wvassert.h
+++ b/include/wvassert.h
@@ -36,7 +36,7 @@ private:
WvString old_will;
};

-#if defined(_WIN32)
+#if !defined(__GLIBC__)

# define wvassert(expr, args...) assert(expr)
# define wvassert_perror(errnum) perror(errnum)

Joe Mason

unread,
Sep 2, 2008, 12:38:20 PM9/2/08
to wvstrea...@googlegroups.com
On Tue, Sep 2, 2008 at 4:09 AM, thE_29 <bEh...@gmail.com> wrote:
>
> I used copy and paste, because i watch this in the browser!
>
> However, i change the file with an editor. But when i try to compile
> it (for Oleg-FW - Optware/NSLU Linux) i stil got some errors.
>
> Like in streams/wvistreamlist.cc:193 __assert_fail not referenced and
> __ASSERT_VOID_CAST not referenced.
>
> I figured out that this is maybe a problem when you use uClibc instead
> of glibc.
>
> Someone knows how to avoid this?

Googling "uclibc __assert_fail not referenced" I found this post:
http://www.uclibc.org/lists/uclibc/2002-February/002657.html

Not sure if that helps.

Joe

thE_29

unread,
Sep 2, 2008, 1:39:52 PM9/2/08
to WvStreams Mailing List
The problem is, i dont mix it ;)

WVstream has in the source code the wvassert define/function. So when
i use uClibc i am not able to compile it!

When i remove the wvassert lines, i got some other errors.. (because
the oleg firmware has not openssl 0.9.8, it has 0.9.7 and the wvstream
needs some function from 0.9.8).
When i try to run mips binary (found in debian archive) i got some
strange errors...

I will try to compile openssl 0.9.8 for the firmware..

On 2 Sep., 18:38, "Joe Mason" <j...@notcharles.ca> wrote:

Avery Pennarun

unread,
Sep 2, 2008, 1:55:50 PM9/2/08
to wvstrea...@googlegroups.com
On Tue, Sep 2, 2008 at 1:39 PM, thE_29 <bEh...@gmail.com> wrote:
> When i remove the wvassert lines, i got some other errors..

Did you try my patch? It's much better than removing assertions.

> (because
> the oleg firmware has not openssl 0.9.8, it has 0.9.7 and the wvstream
> needs some function from 0.9.8).

We might be able to fix that too if you post the exact errors. I'm
sure we don't use anything *important* from 0.9.7.

Have fun,

Avery

thE_29

unread,
Sep 3, 2008, 3:44:44 AM9/3/08
to WvStreams Mailing List
Okay!
I downloaded the latest version from here:
http://wvstreams.googlecode.com/files/wvstreams-4.4.1.tar.gz
Then i applied your patch (per hand, because the patch doesnt work
with copy and paste)

Now i try to make the program and these are the results:
http://members.inode.at./j.taschek/errors.txt

Maybe you can help me!
Thx

On 2 Sep., 19:55, "Avery Pennarun" <apenw...@gmail.com> wrote:

Avery Pennarun

unread,
Sep 3, 2008, 2:10:20 PM9/3/08
to wvstrea...@googlegroups.com
On Wed, Sep 3, 2008 at 3:44 AM, thE_29 <bEh...@gmail.com> wrote:
> I downloaded the latest version from here:
> http://wvstreams.googlecode.com/files/wvstreams-4.4.1.tar.gz
> Then i applied your patch (per hand, because the patch doesnt work
> with copy and paste)

Okay. Note that I sent you two patches now, right? The second one
was to fix the assert-related problems.

> Now i try to make the program and these are the results:
> http://members.inode.at./j.taschek/errors.txt

Hmm, it's perfectly okay to post the error messages to the mailing
list rather than using a link. That way they'll be saved for
posterity in the list archives so other people can find them.

With that in mind:

> FIRST ERROR:
> streams/wvistreamlist.cc: In member function 'virtual bool
> WvIStreamList::post_select(IWvStream::SelectInfo&)':
> streams/wvistreamlist.cc:193: error: '__assert_fail' was not declared in this scope
> streams/wvistreamlist.cc:193: error: '__ASSERT_VOID_CAST' was not declared in this scope
>
> SOLUTION: i comment out the line

My assert-fixing patch should solve this more elegantly.

> SECOND ERROR:
> compiling uniconf/uniconf.o...
> ./include/uniconfkey.h: In member function 'UniConfKey UniConfKey::last(int) const':
> ./include/uniconfkey.h:330: error: 'INT_MAX' was not declared in this scope
> ./include/uniconfkey.h: In member function 'UniConfKey UniConfKey::removefirst(int) const':
> ./include/uniconfkey.h:341: error: 'INT_MAX' was not declared in this scope
>
> SOLUTION: I icnlude the limits.h in uniconfkey.h

Thanks, we should do that in the official version too.

> THIRD ERROR:
> compiling uniconf/uniconfkey.o...
> uniconf/uniconfkey.cc: In member function 'UniConfKey UniConfKey::subkey(const UniConfKey&) const':
> uniconf/uniconfkey.cc:327: error: '__assert_fail' was not declared in this scope
> uniconf/uniconfkey.cc:327: error: '__ASSERT_VOID_CAST' was not declared in this scope
> make[1]: *** [uniconf/uniconfkey.o] Error 1
>
> SOLUTION: I comment out the line

Again, the assert patch should have fixed this.

> FOURTH ERROR:
> compiling utils/wvcrashbase.o...
> utils/wvcrashbase.cc:22: error: 'program_invocation_short_name' was not declared in this scope
> make[1]: *** [utils/wvcrashbase.o] Error 1
>
> SOLUTION: I replaced the define with text "UNKOWN"

Okay for now. We probably need an autoconf test around execinfo.h.

> FITH ERROR:
> utils/wvcrash.cc:31:23: error: execinfo.h: No such file or directory
> utils/wvcrash.cc:35: error: 'program_invocation_short_name' was not declared in this scope
> utils/wvcrash.cc: In function 'void wvcrash_real(int, int, pid_t)':
> utils/wvcrash.cc:272: error: 'backtrace' was not declared in this scope
> utils/wvcrash.cc:272: error: 'backtrace_symbols_fd' was not declared in this scope
> make[1]: *** [utils/wvcrash.o] Error 1
>
> SOLUTION: i copied the execinfo.h from /usr/include to the wvstreams/include folder (oleg fw doesnt have any
> execinfo) and replaced the define with UNKNOWN (like 4)

This won't work very well when you get to linking, I imagine. Looks
like the wvcrash stuff needs to be trimmed down significantly if
execinfo.h isn't available.

> SIXTH (AND MAJOR BUG) ERROR:
> compiling crypto/wvx509.o...
> crypto/wvx509.cc: In member function 'bool WvX509::get_policy_constraints(int&, int&) const':
> crypto/wvx509.cc:816: error: 'POLICY_CONSTRAINTS' was not declared in this scope
>
> BAD SOLUTION: copy the openssl 0.9.8 h files to the include directory! But when he tries to link, the linker
> didnt find the entry points in the library (because it is 0.9.7)

Hmm, it does seem that we've accidentally acquired a dependency on
OpenSSL 0.9.8. However, it looks like this dependency is optional.
Please try completely deleting the functions that are causing the
problem in wvx509.cc; I don't think it's likely that your app calls
them anyway!

I'm going to put in a bit of work to see if I can make autoconf detect
all this stuff automatically so this problem gets solved in general.

Thanks,

Avery

Avery Pennarun

unread,
Sep 3, 2008, 6:01:22 PM9/3/08
to wvstrea...@googlegroups.com

Okay, if you get the latest wvstreams 'master' from git (visit
http://repo.or.cz/w/wvstreams.git and follow the links), you should
have a version that compiles with openssl 0.9.7 (although a couple of
unit tests fail strangely, see my other message). Please try it out
and let me know if it helps.

Have fun,

Avery

Message has been deleted

thE_29

unread,
Sep 4, 2008, 5:15:22 AM9/4/08
to WvStreams Mailing List
Can you include gnulib again?
Because the mipsel/uclibc plattform doesnt provide it.

Or can i just copy the .h files into the include folder?


On 4 Sep., 00:01, "Avery Pennarun" <apenw...@gmail.com> wrote:
> On Wed, Sep 3, 2008 at 2:10 PM, Avery Pennarun <apenw...@gmail.com> wrote:
> > On Wed, Sep 3, 2008 at 3:44 AM, thE_29 <bEha...@gmail.com> wrote:
> >> SIXTH (AND MAJOR BUG) ERROR:
> >> compiling crypto/wvx509.o...
> >> crypto/wvx509.cc: In member function 'bool WvX509::get_policy_constraints(int&, int&) const':
> >> crypto/wvx509.cc:816: error: 'POLICY_CONSTRAINTS' was not declared in this scope
>
> >> BAD SOLUTION: copy the openssl 0.9.8 h files to the include directory! But when he tries to link, the linker
> >> didnt find the entry points in the library (because it is 0.9.7)
>
> > Hmm, it does seem that we've accidentally acquired a dependency on
> > OpenSSL 0.9.8.  However, it looks like this dependency is optional.
> > Please try completely deleting the functions that are causing the
> > problem in wvx509.cc; I don't think it's likely that your app calls
> > them anyway!
>
> > I'm going to put in a bit of work to see if I can make autoconf detect
> > all this stuff automatically so this problem gets solved in general.
>
> Okay, if you get the latest wvstreams 'master' from git (visithttp://repo.or.cz/w/wvstreams.gitand follow the links), you should

Avery Pennarun

unread,
Sep 4, 2008, 11:55:41 AM9/4/08
to wvstrea...@googlegroups.com
On Thu, Sep 4, 2008 at 4:59 AM, thE_29 <bEh...@gmail.com> wrote:
> Can you include xplc and gnulib again?

> Because the mipsel/uclibc plattform doesnt provide it.

It's very easy to compile xplc on just about any platform, so you just
should grab that one from elsewhere. We don't rely on gnulib anymore,
because it was broken and crazy. However we do use argp, which is
included in glibc. You can also get our patched version for other
platforms by checking out the wvbuild project. Follow the link from
here:

http://repo.or.cz/w/wvstreams/wvbuild.git

xplc is in that package too, if you want it.

> Or can i just copy the .h files into the include folder?

No, then it'll compile but not link.

Good luck! I hope we're getting you there, albeit slowly. I would
really like to hear that you got it working :)

Have fun,

Avery

thE_29

unread,
Sep 4, 2008, 4:45:13 PM9/4/08
to WvStreams Mailing List
Well, the uclibc (or lets say the router´s linux environment) on the
router doesnt provide argp neither the cmd tempfile.

And when i tried to compile it directly on router, it reboots. I will
give a try in the vmware/cross compile environment.


On 4 Sep., 17:55, "Avery Pennarun" <apenw...@gmail.com> wrote:

Avery Pennarun

unread,
Sep 4, 2008, 5:04:55 PM9/4/08
to wvstrea...@googlegroups.com
On Thu, Sep 4, 2008 at 4:45 PM, thE_29 <bEh...@gmail.com> wrote:
> Well, the uclibc (or lets say the router´s linux environment) on the
> router doesnt provide argp neither the cmd tempfile.

Right, that's normal.

> And when i tried to compile it directly on router, it reboots. I will
> give a try in the vmware/cross compile environment.

Good idea. Please also look at my previous message about checking out
the wvbuild project, which has a copy of argp that you can use.

Thanks,

Avery

thE_29

unread,
Sep 5, 2008, 4:47:30 AM9/5/08
to WvStreams Mailing List
Can i download the snapshot or do i have to diff the files with the
4.4.1 release?

When i try to run configure on the router i get this errror:

+ set -e
+ test -e wvstreams/Makefile
+ ./get-git-modules
+ set -e
+ git submodule init
fatal: Not a git repository


On 4 Sep., 23:04, "Avery Pennarun" <apenw...@gmail.com> wrote:

Avery Pennarun

unread,
Sep 5, 2008, 10:14:31 AM9/5/08
to wvstrea...@googlegroups.com
You need a checked-out copy of the latest wvsteams (from git) in the
"wvstreams" subdirectory of wvbuild.

The message you're getting is because it's trying to create that
automatically, but apparently your wvbuild directory is no longer a
git repo for some reason.

Avery

thE_29

unread,
Sep 8, 2008, 8:05:41 AM9/8/08
to WvStreams Mailing List
I downloaed the latest wvbuild + wvstreams.
Then I extracted the wvstream into the wvstream folder.

But when i run configure i got some errors!
The last call is this here:
./configure \
--host="mipsel-linux" \
--enable-debug \
--disable-optimization \
--with-xplc=../wvports/xplc/build/xplc \
--with-openssl=../wvports/openssl/build/openssl \
--with-dbus=../wvports/dbus/build/dbus \
CPPFLAGS="-I../wvports/boost/build/boost" \
"$@"

But i got these errors:
checking for xplc/core.h... yes
checking for XPLC_getServiceManager in -lxplc... no
checking zlib.h usability... no
checking zlib.h presence... no
checking for zlib.h... no
checking for compress in -lz... no
checking argp.h usability... no
checking argp.h presence... no
checking for argp.h... no
checking tr1/functional usability... no
checking tr1/functional presence... no
checking for tr1/functional... no
checking boost/function.hpp usability... yes
checking boost/function.hpp presence... yes
checking for boost/function.hpp... yes
checking boost/throw_exception.hpp usability... yes
checking boost/throw_exception.hpp presence... yes
checking for boost/throw_exception.hpp... yes
configure: WARNING: DBUS is missing.
configure: WARNING: PAM is missing.
configure: WARNING: Qt is missing.
configure: WARNING: XPLC is missing.
configure: WARNING: Valgrind is missing.
configure: WARNING: OpenSSL is missing.
configure: WARNING: readline is missing.
configure: WARNING: zlib is missing.
configure: WARNING: argp is missing.
configure: error: Required dependencies missing: XPLC OpenSSL>=0.9.7
zlib argp

Why does he not find the libraries?

On 5 Sep., 16:14, "Avery Pennarun" <apenw...@gmail.com> wrote:
> You need a checked-out copy of the latest wvsteams (from git) in the
> "wvstreams" subdirectory of wvbuild.
>
> The message you're getting is because it's trying to create that
> automatically, but apparently your wvbuild directory is no longer a
> git repo for some reason.
>
> Avery
>
Message has been deleted

thE_29

unread,
Sep 8, 2008, 9:28:09 AM9/8/08
to WvStreams Mailing List
And can you send me the 2 patch files?
I never got an email from you!

Edit: When i dont abort the configure script and try to make, i got
these new errors:
/home/jt/wvbuild/wvbuild/wvstreams/utils/wvbuffer.cc:108: undefinied
reference to `_Unwind_Resume'
And many other erros with _Unwind_Resume!

At these line, there is just a closing braket and when i understand
this here right: http://sourceware.org/ml/libc-alpha/2004-09/msg00166.html
then its anohter problem caused by the glibc! So it seems that the
libc has not such a symbol :(
Or maybe its a problem causing, that he didnt find the openssl/argp/
zlib thing!

And this is funny too! I moved my /usr/include/argp.h to /usr/include/
argp.h.tmp.
Now when i try to compile it on the native linux (debian 4 system) he
isnt able to find argp.h.
So i added the --with-argp=../wvports/argp/build/argp where the argp.h
is in it and many other files.
But the configure script or lets say the wvstreams isn able to find
the argp.h file! Even when i add the --with-argp param.
So the configure script is completly ignoring it (same with --with-
zlib/openssl, etc..).

So that would be the reason why i cannot compile it when i use cross
compilation! The script/make/gcc (whatever) doesnt parse the params!
Why? For what are these parameters if the are not used?
Message has been deleted

henr...@gmail.com

unread,
Sep 30, 2008, 8:14:21 AM9/30/08
to WvStreams Mailing List
Dear Avery,

Sorry...Avery
Previous mail's question was solved, becouse some Makefile i don't
modify correctly.
This mail's question FITH, i also encounter and i fix it by the mail's
solution.

But i encounter different question, below is error message:
What's happen and how to solve it? thanks

[root@jammy-chang wvstreams]# make
make -C xplc
make[1]: Entering directory `/root/wvstreams-4.4.1/xplc'
arm-linux-gcc -g -O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -I. -include
include/autoconf.h -c -o uuid/bin/uuidgen.o uuid/bin/uuidgen.c
arm-linux-gcc -g -O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -I. -include
include/autoconf.h -c -o uuid/bin/tst_uuid.o uuid/bin/tst_uuid.c
arm-linux-gcc -g -O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -I. -include
include/autoconf.h -c -o uuid/clear.o uuid/clear.c
arm-linux-gcc -g -O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -I. -include
include/autoconf.h -c -o uuid/compare.o uuid/compare.c
arm-linux-gcc -g -O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -I. -include
include/autoconf.h -c -o uuid/copy.o uuid/copy.c
arm-linux-gcc -g -O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -I. -include
include/autoconf.h -c -o uuid/gen_uuid.o uuid/gen_uuid.c
arm-linux-gcc -g -O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -I. -include
include/autoconf.h -c -o uuid/gen_uuid_nt.o uuid/gen_uuid_nt.c
arm-linux-gcc -g -O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -I. -include
include/autoconf.h -c -o uuid/isnull.o uuid/isnull.c
arm-linux-gcc -g -O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -I. -include
include/autoconf.h -c -o uuid/pack.o uuid/pack.c
arm-linux-gcc -g -O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -I. -include
include/autoconf.h -c -o uuid/parse.o uuid/parse.c
arm-linux-gcc -g -O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -I. -include
include/autoconf.h -c -o uuid/unpack.o uuid/unpack.c
arm-linux-gcc -g -O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -I. -include
include/autoconf.h -c -o uuid/unparse.o uuid/unparse.c
arm-linux-gcc -g -O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -I. -include
include/autoconf.h -c -o uuid/uuid_time.o uuid/uuid_time.c
arm-linux-ar rc uuid/libuuid.a uuid/clear.o uuid/compare.o uuid/copy.o
uuid/gen_uuid.o uuid/gen_uuid_nt.o uuid/isnull.o uuid/pack.o uuid/
parse.o uuid/unpack.o uuid/unparse.o uuid/uuid_time.o
arm-linux-ranlib uuid/libuuid.a
arm-linux-gcc -g -O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -L/root/
STAR8100-LSDK/tools/arm-uclibc-3.4.6/arm-linux/lib -lc uuid/bin/
uuidgen.o uuid/libuuid.a -o uuid/bin/uuidgen
arm-linux-gcc -g -O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -L/root/
STAR8100-LSDK/tools/arm-uclibc-3.4.6/arm-linux/lib -lc uuid/bin/
tst_uuid.o uuid/libuuid.a -o uuid/bin/tst_uuid
ln -s uuidgen uuid/bin/uuidcdef
arm-linux-g++ -g -O2 -Woverloaded-virtual -fno-rtti -fno-exceptions -g
-O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -pipe -Iinclude -c -o xplc-
cxx/factory.o xplc-cxx/factory.cpp
arm-linux-g++ -g -O2 -Woverloaded-virtual -fno-rtti -fno-exceptions -g
-O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -pipe -Iinclude -c -o xplc-
cxx/getiface.o xplc-cxx/getiface.cpp
arm-linux-g++ -g -O2 -Woverloaded-virtual -fno-rtti -fno-exceptions -g
-O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -pipe -Iinclude -c -o xplc-
cxx/strtouuid.o xplc-cxx/strtouuid.cpp
arm-linux-g++ -g -O2 -Woverloaded-virtual -fno-rtti -fno-exceptions -g
-O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -pipe -Iinclude -c -o xplc-
cxx/uuidtostr.o xplc-cxx/uuidtostr.cpp
arm-linux-g++ -g -O2 -Woverloaded-virtual -fno-rtti -fno-exceptions -g
-O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -pipe -Iinclude -c -o xplc-
cxx/xplc.o xplc-cxx/xplc.cpp
arm-linux-ar rc libxplc-cxx.a xplc-cxx/factory.o xplc-cxx/getiface.o
xplc-cxx/strtouuid.o xplc-cxx/uuidtostr.o xplc-cxx/xplc.o
arm-linux-ranlib libxplc-cxx.a
arm-linux-g++ -g -O2 -Woverloaded-virtual -fno-rtti -fno-exceptions -g
-O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -pipe -Iinclude -c -o xplc/
category.o xplc/category.cpp
arm-linux-g++ -g -O2 -Woverloaded-virtual -fno-rtti -fno-exceptions -g
-O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -pipe -Iinclude -c -o xplc/
catiter.o xplc/catiter.cpp
arm-linux-g++ -g -O2 -Woverloaded-virtual -fno-rtti -fno-exceptions -g
-O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -pipe -Iinclude -c -o xplc/
catmgr.o xplc/catmgr.cpp
arm-linux-g++ -g -O2 -Woverloaded-virtual -fno-rtti -fno-exceptions -g
-O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -pipe -Iinclude -c -o xplc/
loader.o xplc/loader.cpp
arm-linux-g++ -g -O2 -Woverloaded-virtual -fno-rtti -fno-exceptions -g
-O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -pipe -Iinclude -c -o xplc/
moduleloader.o xplc/moduleloader.cpp
arm-linux-g++ -g -O2 -Woverloaded-virtual -fno-rtti -fno-exceptions -g
-O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -pipe -Iinclude -c -o xplc/
modulemgr.o xplc/modulemgr.cpp
arm-linux-g++ -g -O2 -Woverloaded-virtual -fno-rtti -fno-exceptions -g
-O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -pipe -Iinclude -c -o xplc/
monikers.o xplc/monikers.cpp
arm-linux-g++ -g -O2 -Woverloaded-virtual -fno-rtti -fno-exceptions -g
-O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -pipe -Iinclude -c -o xplc/
new.o xplc/new.cpp
arm-linux-g++ -g -O2 -Woverloaded-virtual -fno-rtti -fno-exceptions -g
-O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -pipe -Iinclude -c -o xplc/
servmgr.o xplc/servmgr.cpp
arm-linux-g++ -g -O2 -Woverloaded-virtual -fno-rtti -fno-exceptions -g
-O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -pipe -Iinclude -c -o xplc/
statichandler.o xplc/statichandler.cpp
arm-linux-ar rc libxplc.a xplc/category.o xplc/catiter.o xplc/catmgr.o
xplc/loader.o xplc/moduleloader.o xplc/modulemgr.o xplc/monikers.o
xplc/new.o xplc/servmgr.o xplc/statichandler.o
arm-linux-ranlib libxplc.a
ln -s -f libxplc.a libxplc_s.a
arm-linux-g++ -g -O2 -Woverloaded-virtual -fno-rtti -fno-exceptions -g
-O2 -O2 -DNDEBUG -Wall -fpic -DUNSTABLE -pipe -Iinclude -L/root/
STAR8100-LSDK/tools/arm-uclibc-3.4.6/arm-linux/lib -lc -ldl -shared -
Wl,-hlibxplc.so.0.3.13-unstable -Wl,-z,defs,--version-script=config/
exports.map xplc/category.o xplc/catiter.o xplc/catmgr.o xplc/loader.o
xplc/moduleloader.o xplc/modulemgr.o xplc/monikers.o xplc/new.o xplc/
servmgr.o xplc/statichandler.o libxplc-cxx.a -o libxplc.so
make[1]: Leaving directory `/root/wvstreams-4.4.1/xplc'
compiling utils/wvbuffer.o...
compiling utils/wvbufferstore.o...
compiling utils/wvcont.o...
compiling utils/wverror.o...
compiling streams/wvfdstream.o...
compiling utils/wvfork.o...
compiling utils/wvhash.o...
compiling utils/wvhashtable.o...
compiling utils/wvlinklist.o...
compiling utils/wvmoniker.o...
compiling utils/wvregex.o...
compiling utils/wvscatterhash.o...
compiling utils/wvsorter.o...
compiling utils/wvstring.o...
compiling utils/wvstringlist.o...
compiling utils/wvstringmask.o...
compiling utils/strutils.o...
compiling utils/wvtask.o...
utils/wvtask.cc:66: warning: 'context_return' defined but not used
utils/wvtask.cc:70: warning: 'bool use_shared_stack()' defined but not
used
compiling utils/wvtimeutils.o...
compiling utils/wvvector.o...
compiling streams/wvistreamlist.o...
compiling utils/wvstreamsdebugger.o...
compiling streams/wvlog.o...
compiling streams/wvstream.o...
compiling uniconf/uniconf.o...
compiling uniconf/uniconfgen.o...
compiling uniconf/uniconfkey.o...
compiling uniconf/uniconfroot.o...
compiling uniconf/unihashtree.o...
compiling uniconf/unimountgen.o...
compiling uniconf/unitempgen.o...
compiling utils/wvbackslash.o...
compiling utils/wvencoder.o...
compiling utils/wvtclstring.o...
compiling utils/wvstringcache.o...
compiling uniconf/uniinigen.o...
compiling uniconf/unilistiter.o...
compiling streams/wvfile.o...
compiling streams/wvstreamclone.o...
compiling streams/wvconstream.o...
compiling utils/wvcrashbase.o...
compiling uniconf/unigenhack.o...
linking libwvbase.so...
compiling uniconf/unigenhack_s.o...
linking libwvbase.a...
ar: creating libwvbase.a
compiling utils/strcrypt.o...
compiling utils/verstring.o...
compiling utils/wvargs.o...
compiling utils/wvassert.o...
compiling utils/wvaudioencoder.o...
compiling utils/wvbase64.o...
compiling utils/wvcrash.o...
compiling utils/wvdiriter.o...
compiling utils/wvglob.o...
compiling utils/wvglobdiriter.o...
compiling utils/wvgzip.o...
compiling utils/wvhex.o...
compiling utils/wvmagiccircle.o...
compiling utils/wvmatrix.o...
compiling utils/wvpam.o...
compiling utils/wvprociter.o...
compiling utils/wvrateadjust.o...
compiling utils/wvserialize.o...
compiling utils/wvshmzone.o...
compiling utils/wvstringtable.o...
compiling utils/wvsubproc.o...
compiling utils/wvsubprocqueue.o...
compiling utils/wvsystem.o...
compiling utils/wvwordwrap.o...

--> Making libgnu.a in /root/wvstreams/gnulib...
arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/root/STAR8100-
LSDK/tools/arm-uclibc-3.4.6/include/ -I/root/STAR8100-LSDK/kernels/
linux-2.6.16-star/include -I/root/openssl/include -I/usr/include/
tcl8.3 -I./xplc/include -fPIC -c argp-ba.c
arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/root/STAR8100-
LSDK/tools/arm-uclibc-3.4.6/include/ -I/root/STAR8100-LSDK/kernels/
linux-2.6.16-star/include -I/root/openssl/include -I/usr/include/
tcl8.3 -I./xplc/include -fPIC -c argp-eexst.c
arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/root/STAR8100-
LSDK/tools/arm-uclibc-3.4.6/include/ -I/root/STAR8100-LSDK/kernels/
linux-2.6.16-star/include -I/root/openssl/include -I/usr/include/
tcl8.3 -I./xplc/include -fPIC -c argp-fmtstream.c
arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/root/STAR8100-
LSDK/tools/arm-uclibc-3.4.6/include/ -I/root/STAR8100-LSDK/kernels/
linux-2.6.16-star/include -I/root/openssl/include -I/usr/include/
tcl8.3 -I./xplc/include -fPIC -c argp-fs-xinl.c
arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/root/STAR8100-
LSDK/tools/arm-uclibc-3.4.6/include/ -I/root/STAR8100-LSDK/kernels/
linux-2.6.16-star/include -I/root/openssl/include -I/usr/include/
tcl8.3 -I./xplc/include -fPIC -c argp-help.c
argp-help.c:1693:4: warning: #warning No reasonable value to return
cp ./getopt_.h getopt.h-t
mv getopt.h-t getopt.h
arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/root/STAR8100-
LSDK/tools/arm-uclibc-3.4.6/include/ -I/root/STAR8100-LSDK/kernels/
linux-2.6.16-star/include -I/root/openssl/include -I/usr/include/
tcl8.3 -I./xplc/include -fPIC -c argp-parse.c
arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/root/STAR8100-
LSDK/tools/arm-uclibc-3.4.6/include/ -I/root/STAR8100-LSDK/kernels/
linux-2.6.16-star/include -I/root/openssl/include -I/usr/include/
tcl8.3 -I./xplc/include -fPIC -c argp-pv.c
arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/root/STAR8100-
LSDK/tools/arm-uclibc-3.4.6/include/ -I/root/STAR8100-LSDK/kernels/
linux-2.6.16-star/include -I/root/openssl/include -I/usr/include/
tcl8.3 -I./xplc/include -fPIC -c argp-pvh.c
arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/root/STAR8100-
LSDK/tools/arm-uclibc-3.4.6/include/ -I/root/STAR8100-LSDK/kernels/
linux-2.6.16-star/include -I/root/openssl/include -I/usr/include/
tcl8.3 -I./xplc/include -fPIC -c argp-xinl.c
arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/root/STAR8100-
LSDK/tools/arm-uclibc-3.4.6/include/ -I/root/STAR8100-LSDK/kernels/
linux-2.6.16-star/include -I/root/openssl/include -I/usr/include/
tcl8.3 -I./xplc/include -fPIC -c strnlen1.c
arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/root/STAR8100-
LSDK/tools/arm-uclibc-3.4.6/include/ -I/root/STAR8100-LSDK/kernels/
linux-2.6.16-star/include -I/root/openssl/include -I/usr/include/
tcl8.3 -I./xplc/include -fPIC -c getopt.c
arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/root/STAR8100-
LSDK/tools/arm-uclibc-3.4.6/include/ -I/root/STAR8100-LSDK/kernels/
linux-2.6.16-star/include -I/root/openssl/include -I/usr/include/
tcl8.3 -I./xplc/include -fPIC -c getopt1.c
arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/root/STAR8100-
LSDK/tools/arm-uclibc-3.4.6/include/ -I/root/STAR8100-LSDK/kernels/
linux-2.6.16-star/include -I/root/openssl/include -I/usr/include/
tcl8.3 -I./xplc/include -fPIC -c mbchar.c
arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/root/STAR8100-
LSDK/tools/arm-uclibc-3.4.6/include/ -I/root/STAR8100-LSDK/kernels/
linux-2.6.16-star/include -I/root/openssl/include -I/usr/include/
tcl8.3 -I./xplc/include -fPIC -c strcasecmp.c
arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/root/STAR8100-
LSDK/tools/arm-uclibc-3.4.6/include/ -I/root/STAR8100-LSDK/kernels/
linux-2.6.16-star/include -I/root/openssl/include -I/usr/include/
tcl8.3 -I./xplc/include -fPIC -c strnlen.c
arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/root/STAR8100-
LSDK/tools/arm-uclibc-3.4.6/include/ -I/root/STAR8100-LSDK/kernels/
linux-2.6.16-star/include -I/root/openssl/include -I/usr/include/
tcl8.3 -I./xplc/include -fPIC -c vasnprintf.c
arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/root/STAR8100-
LSDK/tools/arm-uclibc-3.4.6/include/ -I/root/STAR8100-LSDK/kernels/
linux-2.6.16-star/include -I/root/openssl/include -I/usr/include/
tcl8.3 -I./xplc/include -fPIC -c printf-args.c
arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/root/STAR8100-
LSDK/tools/arm-uclibc-3.4.6/include/ -I/root/STAR8100-LSDK/kernels/
linux-2.6.16-star/include -I/root/openssl/include -I/usr/include/
tcl8.3 -I./xplc/include -fPIC -c printf-parse.c
arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../include -I/root/STAR8100-
LSDK/tools/arm-uclibc-3.4.6/include/ -I/root/STAR8100-LSDK/kernels/
linux-2.6.16-star/include -I/root/openssl/include -I/usr/include/
tcl8.3 -I./xplc/include -fPIC -c asnprintf.c
rm -f libgnu.a
arm-linux-ar cru libgnu.a argp-ba.o argp-eexst.o argp-fmtstream.o argp-
fs-xinl.o argp-help.o argp-parse.o argp-pv.o argp-pvh.o argp-xinl.o
strnlen1.o getopt.o getopt1.o mbchar.o strcasecmp.o strnlen.o
vasnprintf.o printf-args.o printf-parse.o asnprintf.o
arm-linux-ranlib libgnu.a

--> Back in /root/wvstreams...
linking libwvutils.so...
/usr/lib/libz.so: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make: *** [libwvutils.so] Error 1

Henry

On 9月4日, 上午2時10分, "Avery Pennarun" <apenw...@gmail.com> wrote:
Reply all
Reply to author
Forward
0 new messages