__cmpdi2

Hi all:

When starting a process under QNX 6.1, I always get:

-Started: PID: 217144 /IGT/projects/DriverLightBezel/LightBezel
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols

I don’t think this symbol coming from my object file. Can anybody help?
Thanks.

Xuedong

__cmpdi2 is in /usr/lib/gcc-lib/ntox86/2.95.2/exceptions/libgcc.a, which is normally
linked in by default.

Are you using strange linking options such as -nostartup or -nostdlib?

Xuedong Chen <Xuedong.Chen@igt.com> wrote:

Hi all:

When starting a process under QNX 6.1, I always get:

-Started: PID: 217144 /IGT/projects/DriverLightBezel/LightBezel
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols

I don’t think this symbol coming from my object file. Can anybody help?
Thanks.

Xuedong


cburgess@qnx.com

No, here is my link option:

-lang-c++ -Wl,–strip-all

Under QNX 6.0, we disabled the exception, we never see this problem. Under
QNX 6.1, the exception is enabled. I noticed that compiler generates
“__cmpdi2” symbol for one of my object files. But this symbol disappear in
the final executable file after linking.

What I don’t understand is that libgcc.a is a static lib, it should be
linked into my code at linking time. Why are there some symbol from it need
to be resolved at run time?

I used “nm -dynamic” to list all symbols contained in my executable,
actually “__cmpdi2” was not there. It seems to me these errors are reported
by the run time linker, how does the run time linker know “__cmpdi2” need to
be resloved for my exeutable?

Please help. Thanks.

Xuedong

“Colin Burgess” <cburgess@qnx.com> wrote in message
news:9jilj2$db4$1@nntp.qnx.com

__cmpdi2 is in /usr/lib/gcc-lib/ntox86/2.95.2/exceptions/libgcc.a, which
is normally
linked in by default.

Are you using strange linking options such as -nostartup or -nostdlib?

Xuedong Chen <> Xuedong.Chen@igt.com> > wrote:
Hi all:

When starting a process under QNX 6.1, I always get:

-Started: PID: 217144 /IGT/projects/DriverLightBezel/LightBezel
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols

I don’t think this symbol coming from my object file. Can anybody help?
Thanks.

Xuedong


\

cburgess@qnx.com

Could it be that one of your shared objects needs it?

use nm -u -D sharedobject.so

Xuedong Chen <Xuedong.Chen@igt.com> wrote:

No, here is my link option:

-lang-c++ -Wl,–strip-all

Under QNX 6.0, we disabled the exception, we never see this problem. Under
QNX 6.1, the exception is enabled. I noticed that compiler generates
“__cmpdi2” symbol for one of my object files. But this symbol disappear in
the final executable file after linking.

What I don’t understand is that libgcc.a is a static lib, it should be
linked into my code at linking time. Why are there some symbol from it need
to be resolved at run time?

I used “nm -dynamic” to list all symbols contained in my executable,
actually “__cmpdi2” was not there. It seems to me these errors are reported
by the run time linker, how does the run time linker know “__cmpdi2” need to
be resloved for my exeutable?

Please help. Thanks.

Xuedong

“Colin Burgess” <> cburgess@qnx.com> > wrote in message
news:9jilj2$db4$> 1@nntp.qnx.com> …
__cmpdi2 is in /usr/lib/gcc-lib/ntox86/2.95.2/exceptions/libgcc.a, which
is normally
linked in by default.

Are you using strange linking options such as -nostartup or -nostdlib?

Xuedong Chen <> Xuedong.Chen@igt.com> > wrote:
Hi all:

When starting a process under QNX 6.1, I always get:

-Started: PID: 217144 /IGT/projects/DriverLightBezel/LightBezel
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols

I don’t think this symbol coming from my object file. Can anybody help?
Thanks.

Xuedong


\

cburgess@qnx.com


cburgess@qnx.com

If you are compiling for 6.1, then you have the latest.

Just for laughts, would you try removing the strip-all option and see if
this fixes things?

Xuedong Chen <Xuedong.Chen@igt.com> wrote:

Thanks.

My process is dynamically linked against:

  1. libc.so.2, libm.so.2, libcpp.so.2
  2. my own shared object.

I used “n -u -D” to list all undefined symbols in my own shared object,
there is no ‘__cmpdi2’ inside of it.

I am working in a cross development environment, I compile/link everything
in my Win 2000 box, then run it from QNX 6.1 box (I mount my working
directory in Win 2000 box into QNX file system by fs-cifs), I am not sure if
the header files /library in my Win2000 box are the latest one to match QNX
6.1, could you please tell me where I can get the latest ?

Xuedong



“Colin Burgess” <> cburgess@qnx.com> > wrote in message
news:9jjs8u$724$> 1@nntp.qnx.com> …
Could it be that one of your shared objects needs it?

use nm -u -D sharedobject.so

Xuedong Chen <> Xuedong.Chen@igt.com> > wrote:
No, here is my link option:

-lang-c++ -Wl,–strip-all

Under QNX 6.0, we disabled the exception, we never see this problem.
Under
QNX 6.1, the exception is enabled. I noticed that compiler generates
“__cmpdi2” symbol for one of my object files. But this symbol disappear
in
the final executable file after linking.

What I don’t understand is that libgcc.a is a static lib, it should be
linked into my code at linking time. Why are there some symbol from it
need
to be resolved at run time?

I used “nm -dynamic” to list all symbols contained in my executable,
actually “__cmpdi2” was not there. It seems to me these errors are
reported
by the run time linker, how does the run time linker know “__cmpdi2”
need to
be resloved for my exeutable?

Please help. Thanks.

Xuedong

“Colin Burgess” <> cburgess@qnx.com> > wrote in message
news:9jilj2$db4$> 1@nntp.qnx.com> …
__cmpdi2 is in /usr/lib/gcc-lib/ntox86/2.95.2/exceptions/libgcc.a,
which
is normally
linked in by default.

Are you using strange linking options such as -nostartup or -nostdlib?

Xuedong Chen <> Xuedong.Chen@igt.com> > wrote:
Hi all:

When starting a process under QNX 6.1, I always get:

-Started: PID: 217144 /IGT/projects/DriverLightBezel/LightBezel
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols

I don’t think this symbol coming from my object file. Can anybody
help?
Thanks.

Xuedong


\

cburgess@qnx.com


\

cburgess@qnx.com


cburgess@qnx.com

Thanks.

My process is dynamically linked against:

  1. libc.so.2, libm.so.2, libcpp.so.2
  2. my own shared object.

I used “n -u -D” to list all undefined symbols in my own shared object,
there is no ‘__cmpdi2’ inside of it.

I am working in a cross development environment, I compile/link everything
in my Win 2000 box, then run it from QNX 6.1 box (I mount my working
directory in Win 2000 box into QNX file system by fs-cifs), I am not sure if
the header files /library in my Win2000 box are the latest one to match QNX
6.1, could you please tell me where I can get the latest ?

Xuedong


“Colin Burgess” <cburgess@qnx.com> wrote in message
news:9jjs8u$724$1@nntp.qnx.com

Could it be that one of your shared objects needs it?

use nm -u -D sharedobject.so

Xuedong Chen <> Xuedong.Chen@igt.com> > wrote:
No, here is my link option:

-lang-c++ -Wl,–strip-all

Under QNX 6.0, we disabled the exception, we never see this problem.
Under
QNX 6.1, the exception is enabled. I noticed that compiler generates
“__cmpdi2” symbol for one of my object files. But this symbol disappear
in
the final executable file after linking.

What I don’t understand is that libgcc.a is a static lib, it should be
linked into my code at linking time. Why are there some symbol from it
need
to be resolved at run time?

I used “nm -dynamic” to list all symbols contained in my executable,
actually “__cmpdi2” was not there. It seems to me these errors are
reported
by the run time linker, how does the run time linker know “__cmpdi2”
need to
be resloved for my exeutable?

Please help. Thanks.

Xuedong

“Colin Burgess” <> cburgess@qnx.com> > wrote in message
news:9jilj2$db4$> 1@nntp.qnx.com> …
__cmpdi2 is in /usr/lib/gcc-lib/ntox86/2.95.2/exceptions/libgcc.a,
which
is normally
linked in by default.

Are you using strange linking options such as -nostartup or -nostdlib?

Xuedong Chen <> Xuedong.Chen@igt.com> > wrote:
Hi all:

When starting a process under QNX 6.1, I always get:

-Started: PID: 217144 /IGT/projects/DriverLightBezel/LightBezel
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols

I don’t think this symbol coming from my object file. Can anybody
help?
Thanks.

Xuedong


\

cburgess@qnx.com


\

cburgess@qnx.com

Hmmm, this undefined reference must be coming from somewhere.

I would run your program in the debugger, then when it has failed, but
is still loaded, do a ‘pidin mem’ to see which shared objects are loaded,
and check them all for __cmpdi2

Xuedong Chen <Xuedong.Chen@igt.com> wrote:

Yes. I did. But no difference.

Xuedong
“Colin Burgess” <> cburgess@qnx.com> > wrote in message
news:9jk44m$bip$> 1@nntp.qnx.com> …
If you are compiling for 6.1, then you have the latest.

Just for laughts, would you try removing the strip-all option and see if
this fixes things?

Xuedong Chen <> Xuedong.Chen@igt.com> > wrote:
Thanks.

My process is dynamically linked against:

  1. libc.so.2, libm.so.2, libcpp.so.2
  2. my own shared object.

I used “n -u -D” to list all undefined symbols in my own shared object,
there is no ‘__cmpdi2’ inside of it.

I am working in a cross development environment, I compile/link
everything
in my Win 2000 box, then run it from QNX 6.1 box (I mount my working
directory in Win 2000 box into QNX file system by fs-cifs), I am not
sure if
the header files /library in my Win2000 box are the latest one to match
QNX
6.1, could you please tell me where I can get the latest ?

Xuedong


“Colin Burgess” <> cburgess@qnx.com> > wrote in message
news:9jjs8u$724$> 1@nntp.qnx.com> …
Could it be that one of your shared objects needs it?

use nm -u -D sharedobject.so

Xuedong Chen <> Xuedong.Chen@igt.com> > wrote:
No, here is my link option:

-lang-c++ -Wl,–strip-all

Under QNX 6.0, we disabled the exception, we never see this problem.
Under
QNX 6.1, the exception is enabled. I noticed that compiler generates
“__cmpdi2” symbol for one of my object files. But this symbol
disappear
in
the final executable file after linking.

What I don’t understand is that libgcc.a is a static lib, it should
be
linked into my code at linking time. Why are there some symbol from
it
need
to be resolved at run time?

I used “nm -dynamic” to list all symbols contained in my executable,
actually “__cmpdi2” was not there. It seems to me these errors are
reported
by the run time linker, how does the run time linker know “__cmpdi2”
need to
be resloved for my exeutable?

Please help. Thanks.

Xuedong

“Colin Burgess” <> cburgess@qnx.com> > wrote in message
news:9jilj2$db4$> 1@nntp.qnx.com> …
__cmpdi2 is in /usr/lib/gcc-lib/ntox86/2.95.2/exceptions/libgcc.a,
which
is normally
linked in by default.

Are you using strange linking options such as -nostartup
or -nostdlib?

Xuedong Chen <> Xuedong.Chen@igt.com> > wrote:
Hi all:

When starting a process under QNX 6.1, I always get:

-Started: PID: 217144 /IGT/projects/DriverLightBezel/LightBezel
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols

I don’t think this symbol coming from my object file. Can anybody
help?
Thanks.

Xuedong


\

cburgess@qnx.com


\

cburgess@qnx.com


\

cburgess@qnx.com


cburgess@qnx.com

Yes. I did. But no difference.

Xuedong
“Colin Burgess” <cburgess@qnx.com> wrote in message
news:9jk44m$bip$1@nntp.qnx.com

If you are compiling for 6.1, then you have the latest.

Just for laughts, would you try removing the strip-all option and see if
this fixes things?

Xuedong Chen <> Xuedong.Chen@igt.com> > wrote:
Thanks.

My process is dynamically linked against:

  1. libc.so.2, libm.so.2, libcpp.so.2
  2. my own shared object.

I used “n -u -D” to list all undefined symbols in my own shared object,
there is no ‘__cmpdi2’ inside of it.

I am working in a cross development environment, I compile/link
everything
in my Win 2000 box, then run it from QNX 6.1 box (I mount my working
directory in Win 2000 box into QNX file system by fs-cifs), I am not
sure if
the header files /library in my Win2000 box are the latest one to match
QNX
6.1, could you please tell me where I can get the latest ?

Xuedong


“Colin Burgess” <> cburgess@qnx.com> > wrote in message
news:9jjs8u$724$> 1@nntp.qnx.com> …
Could it be that one of your shared objects needs it?

use nm -u -D sharedobject.so

Xuedong Chen <> Xuedong.Chen@igt.com> > wrote:
No, here is my link option:

-lang-c++ -Wl,–strip-all

Under QNX 6.0, we disabled the exception, we never see this problem.
Under
QNX 6.1, the exception is enabled. I noticed that compiler generates
“__cmpdi2” symbol for one of my object files. But this symbol
disappear
in
the final executable file after linking.

What I don’t understand is that libgcc.a is a static lib, it should
be
linked into my code at linking time. Why are there some symbol from
it
need
to be resolved at run time?

I used “nm -dynamic” to list all symbols contained in my executable,
actually “__cmpdi2” was not there. It seems to me these errors are
reported
by the run time linker, how does the run time linker know “__cmpdi2”
need to
be resloved for my exeutable?

Please help. Thanks.

Xuedong

“Colin Burgess” <> cburgess@qnx.com> > wrote in message
news:9jilj2$db4$> 1@nntp.qnx.com> …
__cmpdi2 is in /usr/lib/gcc-lib/ntox86/2.95.2/exceptions/libgcc.a,
which
is normally
linked in by default.

Are you using strange linking options such as -nostartup
or -nostdlib?

Xuedong Chen <> Xuedong.Chen@igt.com> > wrote:
Hi all:

When starting a process under QNX 6.1, I always get:

-Started: PID: 217144 /IGT/projects/DriverLightBezel/LightBezel
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols

I don’t think this symbol coming from my object file. Can anybody
help?
Thanks.

Xuedong


\

cburgess@qnx.com


\

cburgess@qnx.com


\

cburgess@qnx.com

Sorry, just now, I found the error message are actually come from the
processes I started before this process (LightBezel), and when I use
“nm -u -D” to those processes, it shows “__cmpdi2” undefined, but anyway I
still have the problem.

Xuedong.

“Xuedong Chen” <Xuedong.Chen@IGT.com> wrote in message
news:9ji4ag$bjp$1@inn.qnx.com

Hi all:

When starting a process under QNX 6.1, I always get:

-Started: PID: 217144 /IGT/projects/DriverLightBezel/LightBezel
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols

I don’t think this symbol coming from my object file. Can anybody help?
Thanks.

Xuedong

Something must be messed up in my Win2000 box yesterday!!!

Just now, I looked through the processes started before LightBezel, quite a
few of them contain ‘__cmpdi2’ undefined symbol. After I rebuild them, these
nasty symbols are gone!
I am still cleaning all left processes, hopefully this will fix my problem.

Sorry, Colin, it seems it is my fault. I also reported a strange error about
ftruncate () yesterday, it may not be a 6.1 issue either, I will verify it.

Thanks for all help.

Xuedong

“Xuedong Chen” <Xuedong.Chen@IGT.com> wrote in message
news:9jk7pd$lih$1@inn.qnx.com

Sorry, just now, I found the error message are actually come from the
processes I started before this process (LightBezel), and when I use
“nm -u -D” to those processes, it shows “__cmpdi2” undefined, but anyway
I
still have the problem.

Xuedong.

“Xuedong Chen” <> Xuedong.Chen@IGT.com> > wrote in message
news:9ji4ag$bjp$> 1@inn.qnx.com> …
Hi all:

When starting a process under QNX 6.1, I always get:

-Started: PID: 217144 /IGT/projects/DriverLightBezel/LightBezel
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols
unknown symbol: __cmpdi2
Could not resolve all symbols

I don’t think this symbol coming from my object file. Can anybody help?
Thanks.

Xuedong
\

Xuedong Chen <Xuedong.Chen@igt.com> wrote:

Something must be messed up in my Win2000 box yesterday!!!

Just now, I looked through the processes started before LightBezel, quite a
few of them contain ‘__cmpdi2’ undefined symbol. After I rebuild them, these
nasty symbols are gone!
I am still cleaning all left processes, hopefully this will fix my problem.

Sorry, Colin, it seems it is my fault. I also reported a strange error about
ftruncate () yesterday, it may not be a 6.1 issue either, I will verify it.

Thanks for all help.

You’re welcome. I’m just glad it wasn’t a problem with our stuff! ;v)


cburgess@qnx.com