ld: warning: librpc.so, needed by out/target/product/passion/obj/lib/libgps.so, not found

352 views
Skip to first unread message

sbq

unread,
Jul 14, 2010, 1:18:41 PM7/14/10
to Android Building
Hi,

I am trying to build a system image for the Nexus One. I did a make
and it was chugging along for abot 20 minutes and then hit an error,
claiming it could not find librpc.so. Does anyone have any ideas
where this file should have come from?

To get to this point, I connected the Nexus One to my Ubuntu 8.10
Linux machine and ran the extract-files.sh script. Then this:

$ . build/envsetup.sh
$ lunch full_passion-userdebug
$ make
...
target thumb C++: app_process <= frameworks/base/cmds/app_process/
app_main.cpp
In file included from frameworks/base/include/android_runtime/
AndroidRuntime.h:29,
from frameworks/base/cmds/app_process/app_main.cpp:
15:
dalvik/libnativehelper/include/nativehelper/jni.h:489: note: the
mangling of 'va_list' has changed in GCC 4.4
target Executable: app_process (out/target/product/passion/obj/
EXECUTABLES/app_process_intermediates/LINKED/app_process)
/home/windriver/an/v2_2r1.1/prebuilt/linux-x86/toolchain/arm-
eabi-4.4.0/bin/../lib/gcc/arm-eabi/4.4.0/../../../../arm-eabi/bin/ld:
warning: librpc.so, needed by out/target/product/passion/obj/lib/
libgps.so, not found (try using -rpath or -rpath-link)
out/target/product/passion/obj/lib/libgps.so: undefined reference to
`xprt_register'
...

Thanks,
-Sam

Jean-Baptiste Queru

unread,
Jul 14, 2010, 1:33:03 PM7/14/10
to android-...@googlegroups.com
The way the GPS code gets built is different (and incompatible)
depending on whether you are using the proprietary binaries or not.

A full clean build (rm -rf out) should fix it, but I think you can get
away with:
find hardware/libhardware_legacy -type f | xargs touch

JBQ

> --
> You received this message because you are subscribed to the "Android Building" mailing list.
> To post to this group, send email to android-...@googlegroups.com
> To unsubscribe from this group, send email to
> android-buildi...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/android-building?hl=en
>

--
Jean-Baptiste M. "JBQ" Queru
Software Engineer, Android Open-Source Project, Google.

Questions sent directly to me that have no reason for being private
will likely get ignored or forwarded to a public forum with no further
warning.

doug

unread,
Jul 21, 2010, 9:10:53 PM7/21/10
to Android Building
Hi JBQ,

I have tried both methods, i.e. "find" and "rm -rf out" but I ended up
with the same error. The platform code I pulled from Git is "froyo"
but the htc files I extracted came from the original 2.1-update1
version. Any other suggestions?

Thanks,
doug

Samuel B. Quiring

unread,
Jul 21, 2010, 11:50:53 PM7/21/10
to android-...@googlegroups.com
What happens when you type:

$ mm librpc.so

at the same place you would normally type "make -j4"? That built libprc.so
for me.

-Sam

Hi JBQ,

Thanks,
doug

--

TDTwister

unread,
Jul 22, 2010, 6:05:22 AM7/22/10
to Android Building
You can try (make librpm) I think that would compile librpm for you
and then you can continue the make process. I think the problem is
that librpc is not required to be build and the bild process is
looking for librpc.so any suggestions on how that could be fixed?

CohenSchmit

unread,
Jul 22, 2010, 2:45:23 PM7/22/10
to Android Building
I am also having this issue. I have tried the methods JBQ suggested
and the result did not change. I am using the files extracted from
the N1 with Froyo 2.2 OTA update. I'd greatly appreciate any help
with this.

Thanks!

Danke Xie

unread,
Jul 22, 2010, 3:32:08 PM7/22/10
to Android Building
The source code of librpc is under: hardware/msm7k/librpc

If it didn't get built, it could be because the directory is not
included by the parent Makefile: hardware/msm7k/Android.mk. It has the
following lines to select what is included in the build:

common_msm_dirs := libcopybit liblights librpc
msm7k_dirs := $(common_msm_dirs) boot libgralloc libaudio
qsd8k_dirs := $(common_msm_dirs) libgralloc-qsd8k libaudio-qsd8k
dspcrashd

ifeq ($(TARGET_BOARD_PLATFORM),msm7k)
include $(call all-named-subdir-makefiles,$(msm7k_dirs))
else
ifeq ($(TARGET_BOARD_PLATFORM),qsd8k)
include $(call all-named-subdir-makefiles,$(qsd8k_dirs))
endif
endif

If TARGET_BOARD_PLATFORM is neither msm7k or qsd7k, librpc is not
built. I am not sure how to properly set TARGET_BOARD_PLATFORM for
your build. Just hope this info helps a bit.
Message has been deleted
Message has been deleted

doug

unread,
Jul 22, 2010, 7:27:44 PM7/22/10
to Android Building
Sam's method ($mm librpc.so) worked for me. Thanks, Sam.

doug
Reply all
Reply to author
Forward
0 new messages