Register Guidelines E-Books Search Today's Posts Mark Forums Read

Go Back   MobileRead Forums > E-Book Readers > Amazon Kindle > Kindle Developer's Corner

Notices

Reply
 
Thread Tools Search this Thread
Old 06-11-2014, 07:30 AM   #16
hawhill
Wizard
hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.
 
hawhill's Avatar
 
Posts: 1,108
Karma: 2114647
Join Date: Nov 2010
Location: Goettingen, Germany
Device: Kindle Paperwhite, Kobo Mini
Errm, while I think raspberry pi will run hardfloat binaries, *but* it is just a ARMv6 core (as opposed to the newer Kindles which have an ARMv7)! A Raspberry Pi is certainly great fun, but this might be a reason to check out other boards, too. Just an example, as there are many more, the Olimex' A... boards: https://www.olimex.com/Products/OLinuXino/A10/
hawhill is offline   Reply With Quote
Old 06-11-2014, 08:40 AM   #17
twobob
( ͡° ͜ʖ ͡°){ʇlnɐɟ ƃǝs}Týr
twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.
 
twobob's Avatar
 
Posts: 6,552
Karma: 6021142
Join Date: Jun 2012
Location: uti gratia usura (Yao ying da ying; Mo ying da yieng)
Device: PW-WIFI|K5-3G+WIFI| K4|K3-3G|DXG|K2| Rooted Nook Touch
Hah, and this is why I should read here more often.

Just went out and bought one.

Will look at those other boards now...
twobob is offline   Reply With Quote
Old 06-11-2014, 08:55 AM   #18
knc1
Embedded Cheerleader
knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.
 
knc1's Avatar
 
Posts: 6,457
Karma: 5840130
Join Date: Feb 2012
Device: Too many.
Why in the world did the authors of ld.so choose a variable escape character significant to the shell?

Grumble, well, they did.
But relative runpaths can be inserted (if you try hard enough).

The Cliff's Notes version:
Code:
bin # export INT=`printf '%s' '/mnt/us/extensions/system/lib/ld-linux-armhf.so.3'`
bin # echo $INT
/mnt/us/extensions/system/lib/ld-linux-armhf.so.3
core2quad bin # patchelf --set-interpreter $INT busybox

bin # export LIB=`printf '%s' '$' 'ORIGIN/../lib' '$' 'ORIGIN/../usr/lib'`
bin # echo $LIB
$ORIGIN/../lib:$ORIGIN/../usr/lib
bin # patchelf --set-rpath $LIB busybox

====

bin # readelf -dl busybox
- - - -
Dynamic section at offset 0x13a180 contains 24 entries:
  Tag        Type                         Name/Value
 0x0000001d (RUNPATH)                    Library runpath: [$ORIGIN/../lib:$ORIGIN/../usr/lib]

====

[root@kindle root]# echo $PATH
/mnt/us/extensions/system/bin:/usr/local/bin:/bin:/usr/bin:/usr/sbin:/sbin:/usr/local/python/bin

[root@kindle root]# LD_DEBUG=libs busybox
     27571:     find library=libc.so.6 [0]; searching
- - - -
     27571:     calling init: /mnt/us/extensions/system/bin/../lib/libc.so.6
- - - -
BusyBox v1.22.1 (2014-06-11 02:23:01 CDT) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2012.
etc.

Last edited by knc1; 06-11-2014 at 05:27 PM.
knc1 is offline   Reply With Quote
Old 06-11-2014, 09:03 AM   #19
Glorfindel
Wizard
Glorfindel ought to be getting tired of karma fortunes by now.Glorfindel ought to be getting tired of karma fortunes by now.Glorfindel ought to be getting tired of karma fortunes by now.Glorfindel ought to be getting tired of karma fortunes by now.Glorfindel ought to be getting tired of karma fortunes by now.Glorfindel ought to be getting tired of karma fortunes by now.Glorfindel ought to be getting tired of karma fortunes by now.Glorfindel ought to be getting tired of karma fortunes by now.Glorfindel ought to be getting tired of karma fortunes by now.Glorfindel ought to be getting tired of karma fortunes by now.Glorfindel ought to be getting tired of karma fortunes by now.
 
Glorfindel's Avatar
 
Posts: 2,346
Karma: 2330800
Join Date: Feb 2014
Location: Valinor
Device: Kindle 4 w/SO
So what is this?
Glorfindel is offline   Reply With Quote
Old 06-11-2014, 09:06 AM   #20
knc1
Embedded Cheerleader
knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.
 
knc1's Avatar
 
Posts: 6,457
Karma: 5840130
Join Date: Feb 2012
Device: Too many.
Quote:
Originally Posted by Glorfindel View Post
So what is this?
Directions / Information to other software developers on how we intend to run Debian/Ubuntu distribution applications in USB storage.

This technical thread is of interest to perhaps a total of five of the members here but is vital to their work.
knc1 is offline   Reply With Quote
Old 06-11-2014, 09:21 AM   #21
Glorfindel
Wizard
Glorfindel ought to be getting tired of karma fortunes by now.Glorfindel ought to be getting tired of karma fortunes by now.Glorfindel ought to be getting tired of karma fortunes by now.Glorfindel ought to be getting tired of karma fortunes by now.Glorfindel ought to be getting tired of karma fortunes by now.Glorfindel ought to be getting tired of karma fortunes by now.Glorfindel ought to be getting tired of karma fortunes by now.Glorfindel ought to be getting tired of karma fortunes by now.Glorfindel ought to be getting tired of karma fortunes by now.Glorfindel ought to be getting tired of karma fortunes by now.Glorfindel ought to be getting tired of karma fortunes by now.
 
Glorfindel's Avatar
 
Posts: 2,346
Karma: 2330800
Join Date: Feb 2014
Location: Valinor
Device: Kindle 4 w/SO
I see. Thanks for explaining in english
Glorfindel is offline   Reply With Quote
Old 06-11-2014, 08:31 PM   #22
knc1
Embedded Cheerleader
knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.
 
knc1's Avatar
 
Posts: 6,457
Karma: 5840130
Join Date: Feb 2012
Device: Too many.
Version 0.2 - Remaining Gottcha's

Our newly build libc.so.6 is importing symbols from an (Amazon) system library and that library (libenvload.so) was not built during the Buildroot glibc build.
This is even though libenvload.so is not among the glibc (NEEDED) entries.
????
Putting on the: "To worry about later" list.
Spoiler:

Code:
[root@kindle lib]# LD_DEBUG=all ./libc.so.6 
     31380:     
     31380:     file=/usr/lib/libenvload.so [0];  needed by ./libc.so.6 [0]
     31380:     file=/usr/lib/libenvload.so [0];  generating link map
     31380:       dynamic: 0x40030710  base: 0x40028000   size: 0x0000883c
     31380:         entry: 0x400284f0  phdr: 0x40028034  phnum:          5
     31380:     
     31380:     checking for version `GLIBC_2.4' in file /mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0] required by file ./libc.so.6 [0]
     31380:     checking for version `GLIBC_PRIVATE' in file /mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0] required by file ./libc.so.6 [0]
     31380:     checking for version `GLIBC_2.4' in file ./libc.so.6 [0] required by file /usr/lib/libenvload.so [0]
     31380:     
     31380:     Initial object scopes
     31380:     object=./libc.so.6 [0]
     31380:      scope 0: ./libc.so.6 /usr/lib/libenvload.so /mnt/us/extensions/system/lib/ld-linux-armhf.so.3
     31380:     
     31380:     object=/usr/lib/libenvload.so [0]
     31380:      scope 0: ./libc.so.6 /usr/lib/libenvload.so /mnt/us/extensions/system/lib/ld-linux-armhf.so.3
     31380:     
     31380:     object=/mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]
     31380:      no scope
     31380:     
     31380:     
     31380:     relocation processing: /usr/lib/libenvload.so (lazy)
     31380:     symbol=__gmon_start__;  lookup in file=./libc.so.6 [0]
     31380:     symbol=__gmon_start__;  lookup in file=/usr/lib/libenvload.so [0]
     31380:     symbol=__gmon_start__;  lookup in file=/mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]
     31380:     symbol=_Jv_RegisterClasses;  lookup in file=./libc.so.6 [0]
     31380:     symbol=_Jv_RegisterClasses;  lookup in file=/usr/lib/libenvload.so [0]
     31380:     symbol=_Jv_RegisterClasses;  lookup in file=/mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]
     31380:     symbol=__cxa_finalize;  lookup in file=./libc.so.6 [0]
     31380:     binding file /usr/lib/libenvload.so [0] to ./libc.so.6 [0]: normal symbol `__cxa_finalize' [GLIBC_2.4]
     31380:     
     31380:     relocation processing: ./libc.so.6 (lazy)
     31380:     symbol=_res;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `_res' [GLIBC_2.4]
     31380:     symbol=stderr;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `stderr' [GLIBC_2.4]
     31380:     symbol=error_one_per_line;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `error_one_per_line' [GLIBC_2.4]
     31380:     symbol=__malloc_initialize_hook;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `__malloc_initialize_hook' [GLIBC_2.4]
     31380:     symbol=errno;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `errno' [GLIBC_PRIVATE]
     31380:     symbol=__morecore;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `__morecore' [GLIBC_2.4]
     31380:     symbol=__key_encryptsession_pk_LOCAL;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `__key_encryptsession_pk_LOCAL' [GLIBC_2.4]
     31380:     symbol=__progname_full;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `__progname_full' [GLIBC_2.4]
     31380:     symbol=_environ;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `_environ' [GLIBC_2.4]
     31380:     symbol=_rtld_global;  lookup in file=./libc.so.6 [0]
     31380:     symbol=_rtld_global;  lookup in file=/usr/lib/libenvload.so [0]
     31380:     symbol=_rtld_global;  lookup in file=/mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]
     31380:     binding file ./libc.so.6 [0] to /mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]: normal symbol `_rtld_global' [GLIBC_PRIVATE]
     31380:     symbol=__progname;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `__progname' [GLIBC_2.4]
     31380:     symbol=argp_err_exit_status;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `argp_err_exit_status' [GLIBC_2.4]
     31380:     symbol=mallwatch;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `mallwatch' [GLIBC_2.4]
     31380:     symbol=__rcmd_errstr;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `__rcmd_errstr' [GLIBC_2.4]
     31380:     symbol=svcauthdes_stats;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `svcauthdes_stats' [GLIBC_2.4]
     31380:     symbol=__libc_enable_secure;  lookup in file=./libc.so.6 [0]
     31380:     symbol=__libc_enable_secure;  lookup in file=/usr/lib/libenvload.so [0]
     31380:     symbol=__libc_enable_secure;  lookup in file=/mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]
     31380:     binding file ./libc.so.6 [0] to /mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]: normal symbol `__libc_enable_secure' [GLIBC_PRIVATE]
     31380:     symbol=_res_hconf;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `_res_hconf' [GLIBC_2.4]
     31380:     symbol=malloc;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `malloc' [GLIBC_2.4]
     31380:     symbol=__default_rt_sa_restorer_v1;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `__default_rt_sa_restorer_v1' [GLIBC_PRIVATE]
     31380:     symbol=__default_rt_sa_restorer_v2;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `__default_rt_sa_restorer_v2' [GLIBC_PRIVATE]
     31380:     symbol=getdate_err;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `getdate_err' [GLIBC_2.4]
     31380:     symbol=__tzname;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `__tzname' [GLIBC_2.4]
     31380:     symbol=__timezone;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `__timezone' [GLIBC_2.4]
     31380:     symbol=_rtld_global_ro;  lookup in file=./libc.so.6 [0]
     31380:     symbol=_rtld_global_ro;  lookup in file=/usr/lib/libenvload.so [0]
     31380:     symbol=_rtld_global_ro;  lookup in file=/mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]
     31380:     binding file ./libc.so.6 [0] to /mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]: normal symbol `_rtld_global_ro' [GLIBC_PRIVATE]
     31380:     symbol=__pointer_chk_guard;  lookup in file=./libc.so.6 [0]
     31380:     symbol=__pointer_chk_guard;  lookup in file=/usr/lib/libenvload.so [0]
     31380:     symbol=__pointer_chk_guard;  lookup in file=/mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]
     31380:     binding file ./libc.so.6 [0] to /mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]: normal symbol `__pointer_chk_guard' [GLIBC_PRIVATE]
     31380:     symbol=optarg;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `optarg' [GLIBC_2.4]
     31380:     symbol=svc_max_pollfd;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `svc_max_pollfd' [GLIBC_2.4]
     31380:     symbol=argp_program_version_hook;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `argp_program_version_hook' [GLIBC_2.4]
     31380:     symbol=__after_morecore_hook;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `__after_morecore_hook' [GLIBC_2.4]
     31380:     symbol=__environ;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `__environ' [GLIBC_2.4]
     31380:     symbol=__curbrk;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `__curbrk' [GLIBC_2.4]
     31380:     symbol=argp_program_version;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `argp_program_version' [GLIBC_2.4]
     31380:     symbol=__daylight;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `__daylight' [GLIBC_2.4]
     31380:     symbol=__memalign_hook;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `__memalign_hook' [GLIBC_2.4]
     31380:     symbol=__malloc_hook;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `__malloc_hook' [GLIBC_2.4]
     31380:     symbol=__free_hook;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `__free_hook' [GLIBC_2.4]
     31380:     symbol=svc_pollfd;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `svc_pollfd' [GLIBC_2.4]
     31380:     symbol=_nl_domain_bindings;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `_nl_domain_bindings' [GLIBC_2.4]
     31380:     symbol=_nl_msg_cat_cntr;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `_nl_msg_cat_cntr' [GLIBC_2.4]
     31380:     symbol=argp_program_bug_address;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `argp_program_bug_address' [GLIBC_2.4]
     31380:     symbol=__key_decryptsession_pk_LOCAL;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `__key_decryptsession_pk_LOCAL' [GLIBC_2.4]
     31380:     symbol=h_errlist;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `h_errlist' [GLIBC_2.4]
     31380:     symbol=program_invocation_short_name;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `program_invocation_short_name' [GLIBC_2.4]
     31380:     symbol=optind;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `optind' [GLIBC_2.4]
     31380:     symbol=profil_counter;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `profil_counter' [GLIBC_2.4]
     31380:     symbol=_dl_starting_up;  lookup in file=./libc.so.6 [0]
     31380:     symbol=_dl_starting_up;  lookup in file=/usr/lib/libenvload.so [0]
     31380:     symbol=_dl_starting_up;  lookup in file=/mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]
     31380:     symbol=stdout;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `stdout' [GLIBC_2.4]
     31380:     symbol=obstack_alloc_failed_handler;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `obstack_alloc_failed_handler' [GLIBC_2.4]
     31380:     symbol=error_print_progname;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `error_print_progname' [GLIBC_2.4]
     31380:     symbol=optopt;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `optopt' [GLIBC_2.4]
     31380:     symbol=_IO_funlockfile;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `_IO_funlockfile' [GLIBC_2.4]
     31380:     symbol=obstack_exit_failure;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `obstack_exit_failure' [GLIBC_2.4]
     31380:     symbol=error_message_count;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `error_message_count' [GLIBC_2.4]
     31380:     symbol=svc_fdset;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `svc_fdset' [GLIBC_2.4]
     31380:     symbol=program_invocation_name;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `program_invocation_name' [GLIBC_2.4]
     31380:     symbol=loc1;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `loc1' [GLIBC_2.4]
     31380:     symbol=free;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `free' [GLIBC_2.4]
     31380:     symbol=loc2;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `loc2' [GLIBC_2.4]
     31380:     symbol=__fpu_control;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `__fpu_control' [GLIBC_2.4]
     31380:     symbol=re_syntax_options;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `re_syntax_options' [GLIBC_2.4]
     31380:     symbol=stdin;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `stdin' [GLIBC_2.4]
     31380:     symbol=__check_rhosts_file;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `__check_rhosts_file' [GLIBC_2.4]
     31380:     symbol=opterr;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `opterr' [GLIBC_2.4]
     31380:     symbol=__default_sa_restorer_v1;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `__default_sa_restorer_v1' [GLIBC_PRIVATE]
     31380:     symbol=__default_sa_restorer_v2;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `__default_sa_restorer_v2' [GLIBC_PRIVATE]
     31380:     symbol=__realloc_hook;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `__realloc_hook' [GLIBC_2.4]
     31380:     symbol=_dl_argv;  lookup in file=./libc.so.6 [0]
     31380:     symbol=_dl_argv;  lookup in file=/usr/lib/libenvload.so [0]
     31380:     symbol=_dl_argv;  lookup in file=/mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]
     31380:     binding file ./libc.so.6 [0] to /mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]: normal symbol `_dl_argv' [GLIBC_PRIVATE]
     31380:     symbol=rpc_createerr;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `rpc_createerr' [GLIBC_2.4]
     31380:     symbol=_IO_2_1_stderr_;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `_IO_2_1_stderr_' [GLIBC_2.4]
     31380:     symbol=_IO_2_1_stdout_;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `_IO_2_1_stdout_' [GLIBC_2.4]
     31380:     symbol=_IO_2_1_stdin_;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `_IO_2_1_stdin_' [GLIBC_2.4]
     31380:     
     31380:     relocation processing: /mnt/us/extensions/system/lib/ld-linux-armhf.so.3
     31380:     symbol=__stack_chk_guard;  lookup in file=./libc.so.6 [0]
     31380:     symbol=__stack_chk_guard;  lookup in file=/usr/lib/libenvload.so [0]
     31380:     symbol=__stack_chk_guard;  lookup in file=/mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]
     31380:     binding file /mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0] to /mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]: normal symbol `__stack_chk_guard' [GLIBC_2.4]
     31380:     symbol=_dl_argv;  lookup in file=./libc.so.6 [0]
     31380:     symbol=_dl_argv;  lookup in file=/usr/lib/libenvload.so [0]
     31380:     symbol=_dl_argv;  lookup in file=/mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]
     31380:     binding file /mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0] to /mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]: normal symbol `_dl_argv' [GLIBC_PRIVATE]
     31380:     symbol=_r_debug;  lookup in file=./libc.so.6 [0]
     31380:     symbol=_r_debug;  lookup in file=/usr/lib/libenvload.so [0]
     31380:     symbol=_r_debug;  lookup in file=/mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]
     31380:     binding file /mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0] to /mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]: normal symbol `_r_debug' [GLIBC_2.4]
     31380:     symbol=free;  lookup in file=./libc.so.6 [0]
     31380:     binding file /mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0] to ./libc.so.6 [0]: normal symbol `free' [GLIBC_2.4]
     31380:     symbol=__libc_memalign;  lookup in file=./libc.so.6 [0]
     31380:     binding file /mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0] to ./libc.so.6 [0]: normal symbol `__libc_memalign' [GLIBC_2.4]
     31380:     symbol=malloc;  lookup in file=./libc.so.6 [0]
     31380:     binding file /mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0] to ./libc.so.6 [0]: normal symbol `malloc' [GLIBC_2.4]
     31380:     symbol=__tls_get_addr;  lookup in file=./libc.so.6 [0]
     31380:     symbol=__tls_get_addr;  lookup in file=/usr/lib/libenvload.so [0]
     31380:     symbol=__tls_get_addr;  lookup in file=/mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]
     31380:     binding file /mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0] to /mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]: normal symbol `__tls_get_addr' [GLIBC_2.4]
     31380:     symbol=calloc;  lookup in file=./libc.so.6 [0]
     31380:     binding file /mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0] to ./libc.so.6 [0]: normal symbol `calloc' [GLIBC_2.4]
     31380:     symbol=realloc;  lookup in file=./libc.so.6 [0]
     31380:     binding file /mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0] to ./libc.so.6 [0]: normal symbol `realloc' [GLIBC_2.4]
     31380:     symbol=free;  lookup in file=./libc.so.6 [0]
     31380:     binding file /mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0] to ./libc.so.6 [0]: normal symbol `free' [GLIBC_2.4]
     31380:     
     31380:     calling init: /usr/lib/libenvload.so
     31380:     
     31380:     symbol=open;  lookup in file=./libc.so.6 [0]
     31380:     binding file /usr/lib/libenvload.so [0] to ./libc.so.6 [0]: normal symbol `open' [GLIBC_2.4]
     31380:     symbol=lseek;  lookup in file=./libc.so.6 [0]
     31380:     binding file /usr/lib/libenvload.so [0] to ./libc.so.6 [0]: normal symbol `lseek' [GLIBC_2.4]
     31380:     symbol=mmap;  lookup in file=./libc.so.6 [0]
     31380:     binding file /usr/lib/libenvload.so [0] to ./libc.so.6 [0]: normal symbol `mmap' [GLIBC_2.4]
     31380:     symbol=strchr;  lookup in file=./libc.so.6 [0]
     31380:     binding file /usr/lib/libenvload.so [0] to ./libc.so.6 [0]: normal symbol `strchr' [GLIBC_2.4]
     31380:     symbol=setenv;  lookup in file=./libc.so.6 [0]
     31380:     binding file /usr/lib/libenvload.so [0] to ./libc.so.6 [0]: normal symbol `setenv' [GLIBC_2.4]
     31380:     symbol=realloc;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `realloc' [GLIBC_2.4]
     31380:     symbol=_dl_find_dso_for_object;  lookup in file=./libc.so.6 [0]
     31380:     symbol=_dl_find_dso_for_object;  lookup in file=/usr/lib/libenvload.so [0]
     31380:     symbol=_dl_find_dso_for_object;  lookup in file=/mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]
     31380:     binding file ./libc.so.6 [0] to /mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]: normal symbol `_dl_find_dso_for_object' [GLIBC_PRIVATE]
     31380:     symbol=malloc;  lookup in file=./libc.so.6 [0]
     31380:     binding file ./libc.so.6 [0] to ./libc.so.6 [0]: normal symbol `malloc' [GLIBC_2.4]
     31380:     symbol=munmap;  lookup in file=./libc.so.6 [0]
     31380:     binding file /usr/lib/libenvload.so [0] to ./libc.so.6 [0]: normal symbol `munmap' [GLIBC_2.4]
     31380:     symbol=close;  lookup in file=./libc.so.6 [0]
     31380:     binding file /usr/lib/libenvload.so [0] to ./libc.so.6 [0]: normal symbol `close' [GLIBC_2.4]
GNU C Library (Buildroot) stable release version 2.19, by Roland McGrath et al.
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.9.0.
Compiled on a Linux 3.0.101 system on 2014-06-11.
Available extensions:
        crypt add-on version 2.1 by Michael Glad and others
        GNU Libidn by Simon Josefsson
        Native POSIX Threads Library by Ulrich Drepper et al
        BIND-8.2.3-T5B
libc ABIs: UNIQUE
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.
[root@kindle lib]#

Top post edited.

Last edited by knc1; 06-11-2014 at 08:46 PM.
knc1 is offline   Reply With Quote
Old 06-11-2014, 11:35 PM   #23
NiLuJe
BLAM!
NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.
 
NiLuJe's Avatar
 
Posts: 4,886
Karma: 4492229
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW & PW2
Is there an LD_PRELOAD set in the env? o_O
NiLuJe is offline   Reply With Quote
Old 06-12-2014, 05:23 AM   #24
knc1
Embedded Cheerleader
knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.
 
knc1's Avatar
 
Posts: 6,457
Karma: 5840130
Join Date: Feb 2012
Device: Too many.
Nice thought, but no.

These are the only clues (not much):
Code:
     31380:     relocation processing: /usr/lib/libenvload.so (lazy)
     31380:     symbol=__gmon_start__;  lookup in file=./libc.so.6 [0]
     31380:     symbol=__gmon_start__;  lookup in file=/usr/lib/libenvload.so [0]
     31380:     symbol=__gmon_start__;  lookup in file=/mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]
     31380:     symbol=_Jv_RegisterClasses;  lookup in file=./libc.so.6 [0]
     31380:     symbol=_Jv_RegisterClasses;  lookup in file=/usr/lib/libenvload.so [0]
     31380:     symbol=_Jv_RegisterClasses;  lookup in file=/mnt/us/extensions/system/lib/ld-linux-armhf.so.3 [0]
     31380:     symbol=__cxa_finalize;  lookup in file=./libc.so.6 [0]
     31380:     binding file /usr/lib/libenvload.so [0] to ./libc.so.6 [0]: normal symbol `__cxa_finalize' [GLIBC_2.4]
Any "what provides" query I can come up with has not helped.

Might be something that hooks the loader's audit interface.

And if nothing else help, then I'll: objdump -d /usr/lib/libenvload.so on the turkey.

Last edited by knc1; 06-12-2014 at 06:05 AM.
knc1 is offline   Reply With Quote
Old 06-12-2014, 08:31 AM   #25
knc1
Embedded Cheerleader
knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.
 
knc1's Avatar
 
Posts: 6,457
Karma: 5840130
Join Date: Feb 2012
Device: Too many.
Development plan (and post #1) updated.
(Yes, I do re-use these 'update notice' posts for later details.)
knc1 is offline   Reply With Quote
Old 06-12-2014, 08:57 AM   #26
knc1
Embedded Cheerleader
knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.
 
knc1's Avatar
 
Posts: 6,457
Karma: 5840130
Join Date: Feb 2012
Device: Too many.
Quote:
Originally Posted by NiLuJe View Post
Tiny nitpick about #6: I think you meant -l, not -L, the uppercase one is for tweaking the link time libdir searchpath . (like what -I does for headers at compile time).
Lower case "ell" - fixed.
Thanks.
knc1 is offline   Reply With Quote
Old 06-12-2014, 11:39 AM   #27
NiLuJe
BLAM!
NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.
 
NiLuJe's Avatar
 
Posts: 4,886
Karma: 4492229
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW & PW2
@knc1: Gotcha!

Code:
cat MAIN/etc/ld.so.preload
/usr/lib/libenvload.so
Sneaky. Also explains why your custom loader still honors it.

Fired up IDA: at least it does what it says on the tin: open something, read it, do some string karate, and calls setenv, supposedly with the results from said string chopping. (AFAICT: I still abysmally suck at any kind of assembly).

Could it be how they implemented the env tweaks for some daemons? (There's an env leaf in the elektra db for some daemons, and adding one to a daemon that hasn't got one by default is honored, I briefly used it at one point in the K3 Fonts Hacks to trick the browser, it works). I could see how, being a preload, they'd want to avoid relying on libelektra and instead went the dirty way to keep the overhead to a minimum. Weird. Also pure conjecture ;p.

EDIT: Meh, maybe not. Nothing uses it anymore in current FW version, and I only tried it on daemons managed by pmond, and pmon happens to have a config leaf pointing to the env utility, so, that was probably handled by pmond...

For ref, what I was talking about:
Code:
cat /etc/kdb/system/daemon/pmond/browserd/env
RG002
40
<DATA>
LD_LIBRARY_PATH=/mnt/us/linkfonts/lib

Last edited by NiLuJe; 06-12-2014 at 11:49 AM.
NiLuJe is offline   Reply With Quote
Old 06-12-2014, 11:49 AM   #28
knc1
Embedded Cheerleader
knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.
 
knc1's Avatar
 
Posts: 6,457
Karma: 5840130
Join Date: Feb 2012
Device: Too many.
@NiLuJe:
Thanks a lot for finding that one.

Hmm...
It might be required to leave it alone, for compatibly with the existing Amazon system.

Well, at least we know now what to research. (patch, delete, etc.)

Note: I keep editing the top post - V-0.2 should happen today.

Last edited by knc1; 06-12-2014 at 12:04 PM.
knc1 is offline   Reply With Quote
Old 06-12-2014, 02:06 PM   #29
NiLuJe
BLAM!
NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.
 
NiLuJe's Avatar
 
Posts: 4,886
Karma: 4492229
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW & PW2
Okay, yep, that wasn't it at all.

It simply parses /var/local/system/locale & /var/local/system/tzVar to add LANG, LC_ALL & KINDLE_TZ to the env.

Simple testcase with env & environ:

Code:
[root@kindle root]# env -i ./environ 
LANG=en_US.utf8
LC_ALL=en_US.utf8
KINDLE_TZ=GMT+01:38
EDIT: I guess I could have gone with Python, too. meh.

environ.c
Code:
#include <unistd.h>
#include <stdio.h>

extern char **environ;

main()
{
        int i = 0;
        while(environ[i]) {
                printf("%s\n", environ[i++]);
        }
}
env.py
Code:
#!/usr/bin/env python2

import os

for key in os.environ.keys():
    print "%s=%s" % (key,os.environ[key])

Last edited by NiLuJe; 06-12-2014 at 02:18 PM.
NiLuJe is offline   Reply With Quote
Old 06-12-2014, 02:42 PM   #30
hawhill
Wizard
hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.hawhill ought to be getting tired of karma fortunes by now.
 
hawhill's Avatar
 
Posts: 1,108
Karma: 2114647
Join Date: Nov 2010
Location: Goettingen, Germany
Device: Kindle Paperwhite, Kobo Mini
or /usr/bin/env :-) "env -i env" (looking a bit funny, but should do it as well, the first "env -i" cleaning up, the single "env" just displaying.)

Edit: Ah, the second command should be the armhf version, right? So I was a bit fast writing that.
hawhill is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Kindle Nicknaming Scheme, Using Kindle with Calibre, and Hacking the Kindle Klif Amazon Kindle 11 09-12-2012 05:11 PM
$0.01 in Kindle Store: Interactive Sudoku for Kindle 2 and Kindle DX - Volume 1 Xia Deals, Freebies, and Resources (No Self-Promotion) 2 11-07-2009 10:06 AM


All times are GMT -4. The time now is 03:43 AM.


MobileRead.com is a privately owned, operated and funded community.