Anyone running EW 7.10 on Ubuntu 20.04.3 LTS?

14 views
Skip to first unread message

Bob Hammond

unread,
Nov 26, 2021, 1:46:03 PM11/26/21
to earthwo...@googlegroups.com
I'm having trouble running EW 7.10 with Ubuntu 20.04.3 LTS on a RPi 4. 


Once compiled, executing startstop gives this error:

-bash: /ew/earthworm_7.10/bin/startstop: cannot execute binary file: Exec format error

I'm assuming this is due to a compile error but I'm not sure.  Could it be that there are significant differences between Ubuntu 20.04.3 LTSand Ubuntu 18.04?

Bob


Baker, Lawrence M

unread,
Nov 26, 2021, 3:59:30 PM11/26/21
to Bob Hammond, Baker, Lawrence M, 'Meremonte, Mark E' via Earthworm Community Forum
Bob,

Sounds like you might have compiled Earthworm for 32-bit execution, but your Ubuntu platform either no longer supports 32-bit executables, or you have not installed the necessary 32-bit support.  Or, the reverse could be true.  (RPi is an ARM processor.  32 bit?  64 bit?)

Try recompiling with EW_INSTALL_BITS=64 defined in the environment shell script you use (I use an Intel Mac, so mine is called ew_macosx_intel.sh).  Or flip it from what you tried the first time.

Larry Baker
US Geological Survey
650-329-5608
ba...@usgs.gov



On Nov 26 2021, at 10:45:26 AM, Bob Hammond <propg...@gmail.com> wrote:

 

 This email has been received from outside of DOI - Use caution before clicking on links, opening attachments, or responding.  



--
--
You received this message because you are subscribed to the Google
Groups "Earthworm Community Forum" group.
 
To post to this group, send an email to earthwo...@googlegroups.com
 
To unsubscribe from this group, send an email to
earthworm_for...@googlegroups.com
 
For more options, visit this group at
http://groups.google.com/group/earthworm_forum?hl=en

---
You received this message because you are subscribed to the Google Groups "Earthworm Community Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to earthworm_for...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/earthworm_forum/CAKoB7Or4upN49jQCyHC_i%2BVtSFcZu3b09iX1QFBwYD%2B%3DWTWPFg%40mail.gmail.com.



Larry Baker
US Geological Survey
650-329-5608
ba...@usgs.gov



Bob Hammond

unread,
Nov 26, 2021, 7:22:16 PM11/26/21
to Baker, Lawrence M, 'Meremonte, Mark E' via Earthworm Community Forum
Thanks Larry.  I'm running ubuntu-mate-20.04.1 which is 64-bit and the Raspberry Pi 4 works well with it.
Running uname-m shows the aarch64 architecture.

I'll recheck the install bits.

Bob

Bob Hammond

unread,
Nov 26, 2021, 7:27:49 PM11/26/21
to Baker, Lawrence M, 'Meremonte, Mark E' via Earthworm Community Forum
The ew_linux.bash for ew 7.10 shows:

# Enable USE_CC_BITS to default EW_BITs to the compiler target (removes -m32/64)
# Otherwise, the default is 32, as it was. 'true' should get you 64 bit on a 64
# bit system.
USE_CC_BITS=true

So, I compiled with the proper bit setting (64).

Bob

Bob Hammond

unread,
Nov 26, 2021, 7:54:54 PM11/26/21
to Baker, Lawrence M, 'Meremonte, Mark E' via Earthworm Community Forum
I noticed ew_linux_arm.bash in /environment and recompiled using it since it specifies aarch64.

Unfortunately, I still get the same error (after what seems like a successful ,with warnings, compile) when I run startstop:
-bash: /ew/earthworm_7.10/bin/startstop: cannot execute binary file: Exec format error



Baker, Lawrence M

unread,
Nov 26, 2021, 8:22:47 PM11/26/21
to Bob Hammond, Baker, Lawrence M, 'Meremonte, Mark E' via Earthworm Community Forum
Bob,

The easiest way to identify what kind of file your are executing is to use the "file" command.  E.g., "file /ew/earthworm_7.10/bin/startstop".  Please show us the output.

Also, it would be useful to include a printout of the first page or two of the make output.  The first several lines will be a printout of the compiler environment.  And, after that, we'll be able to see a few compiler commands.

As I recall, USE_CC_BITS=true removes the -m32 or -m64 from the compile command.  Without such a specification, the system default (32 or 64) is used.


Larry Baker
US Geological Survey
650-329-5608
ba...@usgs.gov


Bob Hammond

unread,
Nov 26, 2021, 8:35:35 PM11/26/21
to Baker, Lawrence M, 'Meremonte, Mark E' via Earthworm Community Forum
Larry, here you go.

And yes USE_CC_BITS=true is what I'm using.



$ file /ew/earthworm_7.10/bin/startstop:

/ew/earthworm_7.10/bin/startstop: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=77d98926cff8805c2f8e3ed143a91858cf05abf3, with debug_info, not stripped

-----------------------------------------------------------------------------------------

rpi@rpi-desktop:/ew/earthworm_7.10/src$ make unix
-*-*-*-*-*-*-*-*-*-*
Earthworm build info
-*-*-*-*-*-*-*-*-*-*
cd diagnostic_tools/buildinfo && \
        make -f makefile.unix clean ; \
        make -f makefile.unix clean_bin ; \
        make -f makefile.unix
make[1]: Entering directory '/ew/earthworm_7.10/src/diagnostic_tools/buildinfo'
rm -f a.out core *.o *.obj *% *~
make[1]: Leaving directory '/ew/earthworm_7.10/src/diagnostic_tools/buildinfo'
make[1]: Entering directory '/ew/earthworm_7.10/src/diagnostic_tools/buildinfo'
rm -f /ew/earthworm_7.10/bin/buildinfo /ew/earthworm_7.10/bin/buildinfo.exe
make[1]: Leaving directory '/ew/earthworm_7.10/src/diagnostic_tools/buildinfo'
make[1]: Entering directory '/ew/earthworm_7.10/src/diagnostic_tools/buildinfo'
gcc -g -pthread -Wall -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unknown-pragmas -Wno-pragmas -Wformat -Wdeclaration-after-statement -D_LINUX -Dlinux -D_INTEL -D_USE_SCHED -D_USE_PTHREADS -D_USE_TERMIOS -D_FILE_OFFSET_BITS=64 -I/ew/earthworm_7.10/include -D_LINUX -Dlinux -D_INTEL -D_USE_SCHED -D_USE_PTHREADS -D_USE_TERMIOS -D_FILE_OFFSET_BITS=64 -I/ew/earthworm_7.10/include  -c -o unixbuildinfo.o unixbuildinfo.c
gcc -o /ew/earthworm_7.10/bin/buildinfo -g -pthread -Wall -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unknown-pragmas -Wno-pragmas -Wformat -Wdeclaration-after-statement -D_LINUX -Dlinux -D_INTEL -D_USE_SCHED -D_USE_PTHREADS -D_USE_TERMIOS -D_FILE_OFFSET_BITS=64 -I/ew/earthworm_7.10/include unixbuildinfo.o -lpthread
make[1]: Leaving directory '/ew/earthworm_7.10/src/diagnostic_tools/buildinfo'
buildinfo

buildinfo: Linux EARTHWORM-64 build of Nov 26 2021 17:29:01
-*-*-*-*-*-*-*-*-*
Making C libraries
-*-*-*-*-*-*-*-*-*
make[1]: Entering directory '/ew/earthworm_7.10/src/libsrc'
----------
Making earlybird in: /ew/earthworm_7.10/src/libsrc/earlybird
make[2]: Entering directory '/ew/earthworm_7.10/src/libsrc/earlybird'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/ew/earthworm_7.10/src/libsrc/earlybird'
----------
Making lib330 in: /ew/earthworm_7.10/src/libsrc/lib330
make[2]: Entering directory '/ew/earthworm_7.10/src/libsrc/lib330'
gcc -g -pthread -Wall -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unknown-pragmas -Wno-pragmas -Wformat -Wdeclaration-after-statement -D_LINUX -Dlinux -D_INTEL -D_USE_SCHED -D_USE_PTHREADS -D_USE_TERMIOS -D_FILE_OFFSET_BITS=64 -I/ew/earthworm_7.10/include -D_LINUX -Dlinux -D_INTEL -D_USE_SCHED -D_USE_PTHREADS -D_USE_TERMIOS -D_FILE_OFFSET_BITS=64 -I/ew/earthworm_7.10/include  -c -o libarchive.o libarchive.c
In file included from libtypes.h:43,
                 from libarchive.h:33,
                 from libarchive.c:41:
libarchive.c: In function ‘flush_archive’:
pascal.h:47:14: warning: passing argument 1 of ‘strcpy’ from incompatible pointer type [-Wincompatible-pointer-types]
   47 | #define addr &
libarchive.c:118:10: note: in expansion of macro ‘addr’
  118 |   strcpy(addr(q330->miniseed_call.location), addr(q->slocation)) ;
      |          ^~~~
In file included from platform.h:104,
                 from pascal.h:26,
                 from libtypes.h:43,
                 from libarchive.h:33,
                 from libarchive.c:41:
/usr/include/string.h:122:14: note: expected ‘char * restrict’ but argument is of type ‘char (*)[3]’
  122 | extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
      |              ^~~~~~
In file included from libtypes.h:43,
                 from libarchive.h:33,
                 from libarchive.c:41:
pascal.h:47:14: warning: passing argument 2 of ‘strcpy’ from incompatible pointer type [-Wincompatible-pointer-types]
   47 | #define addr &
libarchive.c:118:46: note: in expansion of macro ‘addr’
  118 |   strcpy(addr(q330->miniseed_call.location), addr(q->slocation)) ;
      |                                              ^~~~
In file included from platform.h:104,
                 from pascal.h:26,
                 from libtypes.h:43,
                 from libarchive.h:33,
                 from libarchive.c:41:
/usr/include/string.h:122:14: note: expected ‘const char * restrict’ but argument is of type ‘char (*)[3]’
  122 | extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
      |              ^~~~~~
In file included from libtypes.h:43,
                 from libarchive.h:33,
                 from libarchive.c:41:
pascal.h:47:14: warning: passing argument 1 of ‘strcpy’ from incompatible pointer type [-Wincompatible-pointer-types]
   47 | #define addr &
libarchive.c:119:10: note: in expansion of macro ‘addr’
  119 |   strcpy(addr(q330->miniseed_call.channel), addr(q->sseedname)) ;
      |          ^~~~
In file included from platform.h:104,
                 from pascal.h:26,
                 from libtypes.h:43,
                 from libarchive.h:33,
                 from libarchive.c:41:
/usr/include/string.h:122:14: note: expected ‘char * restrict’ but argument is of type ‘char (*)[4]’
  122 | extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
      |              ^~~~~~
In file included from libtypes.h:43,
                 from libarchive.h:33,
                 from libarchive.c:41:
pascal.h:47:14: warning: passing argument 2 of ‘strcpy’ from incompatible pointer type [-Wincompatible-pointer-types]
   47 | #define addr &
libarchive.c:119:45: note: in expansion of macro ‘addr’
  119 |   strcpy(addr(q330->miniseed_call.channel), addr(q->sseedname)) ;
      |                                             ^~~~
In file included from platform.h:104,
                 from pascal.h:26,
                 from libtypes.h:43,
                 from libarchive.h:33,
                 from libarchive.c:41:
/usr/include/string.h:122:14: note: expected ‘const char * restrict’ but argument is of type ‘char (*)[4]’
  122 | extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
      |              ^~~~~~
libarchive.c: In function ‘archive_512_record’:
libarchive.c:201:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  201 |       psrc = (pointer)((pntrint)addr(pbuf->rec) + FRAME_SIZE) ;
      |                        ^
libarchive.c:201:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  201 |       psrc = (pointer)((pntrint)addr(pbuf->rec) + FRAME_SIZE) ;
      |              ^
libarchive.c:211:42: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  211 |                         psrc = (pointer)((pntrint)parc->pcfr + FRAME_SIZE * (dbcnt + 1)) ;
      |                                          ^
libarchive.c:211:32: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  211 |                         psrc = (pointer)((pntrint)parc->pcfr + FRAME_SIZE * (dbcnt + 1)) ;
      |                                ^
libarchive.c:212:43: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  212 |                         pdest = (pointer)((pntrint)parc->pcfr + FRAME_SIZE * (dbcnt + bcnt + 1)) ;
      |                                           ^
libarchive.c:212:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  212 |                         pdest = (pointer)((pntrint)parc->pcfr + FRAME_SIZE * (dbcnt + bcnt + 1)) ;
      |                                 ^
libarchive.c:217:36: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  217 |                   psrc = (pointer)((pntrint)addr(pbuf->rec) + FRAME_SIZE) ;
      |                                    ^
libarchive.c:217:26: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  217 |                   psrc = (pointer)((pntrint)addr(pbuf->rec) + FRAME_SIZE) ;
      |                          ^
libarchive.c:218:37: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  218 |                   pdest = (pointer)((pntrint)parc->pcfr + FRAME_SIZE * (dbcnt + 1)) ;
      |                                     ^
libarchive.c:218:27: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  218 |                   pdest = (pointer)((pntrint)parc->pcfr + FRAME_SIZE * (dbcnt + 1)) ;
      |                           ^
libarchive.c:228:47: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  228 |                             plink = (pointer)((pntrint)parc->pcfr + FRAME_SIZE * i + 2) ;
      |                                               ^
libarchive.c:228:37: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  228 |                             plink = (pointer)((pntrint)parc->pcfr + FRAME_SIZE * i + 2) ;
      |                                     ^
libarchive.c:239:37: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  239 |                   pdest = (pointer)((pntrint)parc->pcfr + parc->total_frames * FRAME_SIZE) ; /* add to end */
      |                                     ^
libarchive.c:239:27: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  239 |                   pdest = (pointer)((pntrint)parc->pcfr + parc->total_frames * FRAME_SIZE) ; /* add to end */
      |                           ^
libarchive.c:262:30: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  262 |             psrc = (pointer)((pntrint)addr(pbuf->rec) + (bcnt + 1) * FRAME_SIZE + 8) ;
      |                              ^
libarchive.c:262:20: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  262 |             psrc = (pointer)((pntrint)addr(pbuf->rec) + (bcnt + 1) * FRAME_SIZE + 8) ;
      |                    ^
libarchive.c:263:31: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  263 |             pdest = (pointer)((pntrint)parc->pcfr + (dbcnt + 1) * FRAME_SIZE + 8) ;
      |                               ^
libarchive.c:263:21: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  263 |             pdest = (pointer)((pntrint)parc->pcfr + (dbcnt + 1) * FRAME_SIZE + 8) ;
      |                     ^
libarchive.c:281:30: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  281 |             psrc = (pointer)((pntrint)addr(pbuf->rec) + FRAME_SIZE) ;
      |                              ^
libarchive.c:281:20: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  281 |             psrc = (pointer)((pntrint)addr(pbuf->rec) + FRAME_SIZE) ;
      |                    ^
libarchive.c:282:31: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  282 |             pdest = (pointer)((pntrint)parc->pcfr + FRAME_SIZE) ;
      |                               ^
libarchive.c:282:21: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  282 |             pdest = (pointer)((pntrint)parc->pcfr + FRAME_SIZE) ;
      |                     ^
libarchive.c:305:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  305 |       psrc = (pointer)((pntrint)addr(pbuf->rec) + NONDATA_OVERHEAD) ;
      |                        ^
libarchive.c:305:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  305 |       psrc = (pointer)((pntrint)addr(pbuf->rec) + NONDATA_OVERHEAD) ;
      |              ^
libarchive.c:306:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  306 |       pdest = (pointer)((pntrint)parc->pcfr + NONDATA_OVERHEAD + parc->hdr_buf.samples_in_record) ;
      |                         ^
libarchive.c:306:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  306 |       pdest = (pointer)((pntrint)parc->pcfr + NONDATA_OVERHEAD + parc->hdr_buf.samples_in_record) ;
      |               ^
libarchive.c:334:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  334 |       psrc = (pointer)((pntrint)addr(pbuf->rec) + NONDATA_OVERHEAD) ;
      |                        ^
libarchive.c:334:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  334 |       psrc = (pointer)((pntrint)addr(pbuf->rec) + NONDATA_OVERHEAD) ;
      |              ^
libarchive.c:338:31: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  338 |             pdest = (pointer)((pntrint)parc->pcfr + parc->total_frames) ;
      |                               ^
libarchive.c:338:21: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  338 |             pdest = (pointer)((pntrint)parc->pcfr + parc->total_frames) ;
      |                     ^
libarchive.c:340:30: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  340 |             psrc = (pointer)((pntrint)parc->pcfr + parc->total_frames - TIMING_BLOCKETTE_SIZE + 2) ; /* previous blockette */
      |                              ^
libarchive.c:340:20: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  340 |             psrc = (pointer)((pntrint)parc->pcfr + parc->total_frames - TIMING_BLOCKETTE_SIZE + 2) ; /* previous blockette */
      |                    ^
libarchive.c:352:31: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  352 |             pdest = (pointer)((pntrint)parc->pcfr + NONDATA_OVERHEAD) ;
      |                               ^
libarchive.c:352:21: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  352 |             pdest = (pointer)((pntrint)parc->pcfr + NONDATA_OVERHEAD) ;
      |                     ^
libarchive.c:376:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  376 |       psrc = (pointer)((pntrint)addr(pbuf->rec) + NONDATA_OVERHEAD) ;
      |                        ^
libarchive.c:376:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  376 |       psrc = (pointer)((pntrint)addr(pbuf->rec) + NONDATA_OVERHEAD) ;
      |              ^
libarchive.c:384:31: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  384 |             pdest = (pointer)((pntrint)parc->pcfr + NONDATA_OVERHEAD) ;
      |                               ^
libarchive.c:384:21: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  384 |             pdest = (pointer)((pntrint)parc->pcfr + NONDATA_OVERHEAD) ;
      |                     ^
libarchive.c:397:35: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  397 |                 plink = (pointer)((pntrint)parc->pcfr + dest + 2) ;
      |                                   ^
libarchive.c:397:25: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  397 |                 plink = (pointer)((pntrint)parc->pcfr + dest + 2) ;
      |                         ^
libarchive.c:401:31: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  401 |             pdest = (pointer)((pntrint)parc->pcfr + parc->total_frames) ;
      |                               ^
libarchive.c:401:21: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  401 |             pdest = (pointer)((pntrint)parc->pcfr + parc->total_frames) ;
      |                     ^
libarchive.c:408:35: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  408 |                 plink = (pointer)((pntrint)addr(pbuf->rec) + src + 2) ;
      |                                   ^
libarchive.c:408:25: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  408 |                 plink = (pointer)((pntrint)addr(pbuf->rec) + src + 2) ;
      |                         ^
libarchive.c:411:35: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  411 |                 pdest = (pointer)((pntrint)parc->pcfr + dest + 2) ;
      |                                   ^
libarchive.c:411:25: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  411 |                 pdest = (pointer)((pntrint)parc->pcfr + dest + 2) ;
      |                         ^
libarchive.c:179:3: warning: enumeration value ‘PKC_EVENT’ not handled in switch [-Wswitch]
  179 |   switch (q->pack_class) begin
      |   ^~~~~~
libarchive.c:179:3: warning: enumeration value ‘PKC_CALIBRATE’ not handled in switch [-Wswitch]
In file included from libtypes.h:43,
                 from libarchive.h:33,
                 from libarchive.c:41:
libarchive.c: In function ‘preload_archive’:
pascal.h:47:14: warning: passing argument 1 of ‘strcpy’ from incompatible pointer type [-Wincompatible-pointer-types]
   47 | #define addr &
libarchive.c:451:20: note: in expansion of macro ‘addr’
  451 |             strcpy(addr(q330->miniseed_call.location), addr(q->slocation)) ;
      |                    ^~~~
In file included from platform.h:104,
                 from pascal.h:26,
                 from libtypes.h:43,
                 from libarchive.h:33,
                 from libarchive.c:41:
/usr/include/string.h:122:14: note: expected ‘char * restrict’ but argument is of type ‘char (*)[3]’
  122 | extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
      |              ^~~~~~
In file included from libtypes.h:43,
                 from libarchive.h:33,
                 from libarchive.c:41:
pascal.h:47:14: warning: passing argument 2 of ‘strcpy’ from incompatible pointer type [-Wincompatible-pointer-types]
   47 | #define addr &
libarchive.c:451:56: note: in expansion of macro ‘addr’
  451 |             strcpy(addr(q330->miniseed_call.location), addr(q->slocation)) ;
      |                                                        ^~~~
In file included from platform.h:104,
                 from pascal.h:26,
                 from libtypes.h:43,
                 from libarchive.h:33,
                 from libarchive.c:41:
/usr/include/string.h:122:14: note: expected ‘const char * restrict’ but argument is of type ‘char (*)[3]’
  122 | extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
      |              ^~~~~~
In file included from libtypes.h:43,
                 from libarchive.h:33,
                 from libarchive.c:41:
pascal.h:47:14: warning: passing argument 1 of ‘strcpy’ from incompatible pointer type [-Wincompatible-pointer-types]
   47 | #define addr &
libarchive.c:452:20: note: in expansion of macro ‘addr’
  452 |             strcpy(addr(q330->miniseed_call.channel), addr(q->sseedname)) ;
      |                    ^~~~
In file included from platform.h:104,
                 from pascal.h:26,
                 from libtypes.h:43,
                 from libarchive.h:33,
                 from libarchive.c:41:
/usr/include/string.h:122:14: note: expected ‘char * restrict’ but argument is of type ‘char (*)[4]’
  122 | extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
      |              ^~~~~~
In file included from libtypes.h:43,
                 from libarchive.h:33,
                 from libarchive.c:41:
pascal.h:47:14: warning: passing argument 2 of ‘strcpy’ from incompatible pointer type [-Wincompatible-pointer-types]
   47 | #define addr &
libarchive.c:452:55: note: in expansion of macro ‘addr’
  452 |             strcpy(addr(q330->miniseed_call.channel), addr(q->sseedname)) ;
      |                                                       ^~~~
In file included from platform.h:104,
                 from pascal.h:26,
                 from libtypes.h:43,
                 from libarchive.h:33,
                 from libarchive.c:41:
/usr/include/string.h:122:14: note: expected ‘const char * restrict’ but argument is of type ‘char (*)[4]’
  122 | extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
      |              ^~~~~~
ar rv lib330.a libarchive.o
r - libarchive.o
gcc -g -pthread -Wall -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unknown-pragmas -Wno-pragmas -Wformat -Wdeclaration-after-statement -D_LINUX -Dlinux -D_INTEL -D_USE_SCHED -D_USE_PTHREADS -D_USE_TERMIOS -D_FILE_OFFSET_BITS=64 -I/ew/earthworm_7.10/include -D_LINUX -Dlinux -D_INTEL -D_USE_SCHED -D_USE_PTHREADS -D_USE_TERMIOS -D_FILE_OFFSET_BITS=64 -I/ew/earthworm_7.10/include  -c -o libcvrt.o libcvrt.c
libcvrt.c: In function ‘storestring’:
libcvrt.c:105:16: warning: passing argument 1 of ‘strlen’ from incompatible pointer type [-Wincompatible-pointer-types]
  105 |   lth = strlen(s) + 1 ;
      |                ^
      |                |
      |                char (*)[256]
In file included from platform.h:104,
                 from pascal.h:26,
                 from libtypes.h:43,
                 from libcvrt.h:33,
                 from libcvrt.c:30:
/usr/include/string.h:385:35: note: expected ‘const char *’ but argument is of type ‘char (*)[256]’
  385 | extern size_t strlen (const char *__s)
      |                       ~~~~~~~~~~~~^~~
libcvrt.c:112:30: warning: passing argument 2 of ‘lib330_strpas’ from incompatible pointer type [-Wincompatible-pointer-types]
  112 |   lib330_strpas ((pchar) *p, s) ;
      |                              ^
      |                              |
      |                              char (*)[256]
In file included from libcvrt.c:39:
libsupport.h:49:51: note: expected ‘pchar’ {aka ‘char *’} but argument is of type ‘char (*)[256]’
   49 | extern void lib330_strpas (pchar outstring, pchar instring) ;
      |                                             ~~~~~~^~~~~~~~
libcvrt.c: In function ‘loadstring’:
libcvrt.c:211:19: warning: passing argument 1 of ‘lib330_strpcopy’ from incompatible pointer type [-Wincompatible-pointer-types]
  211 |   lib330_strpcopy(s, s) ; /* this routine allows in-place operation */
      |                   ^
      |                   |
      |                   char (*)[256]
In file included from libcvrt.c:39:
libsupport.h:48:36: note: expected ‘pchar’ {aka ‘char *’} but argument is of type ‘char (*)[256]’
   48 | extern void lib330_strpcopy (pchar outstring, pchar instring) ;
      |                              ~~~~~~^~~~~~~~~
libcvrt.c:211:22: warning: passing argument 2 of ‘lib330_strpcopy’ from incompatible pointer type [-Wincompatible-pointer-types]
  211 |   lib330_strpcopy(s, s) ; /* this routine allows in-place operation */
      |                      ^
      |                      |
      |                      char (*)[256]
In file included from libcvrt.c:39:
libsupport.h:48:53: note: expected ‘pchar’ {aka ‘char *’} but argument is of type ‘char (*)[256]’
   48 | extern void lib330_strpcopy (pchar outstring, pchar instring) ;
      |                                               ~~~~~~^~~~~~~~
ar rv lib330.a libcvrt.o
r - libcvrt.o
gcc -g -pthread -Wall -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unknown-pragmas -Wno-pragmas -Wformat -Wdeclaration-after-statement -D_LINUX -Dlinux -D_INTEL -D_USE_SCHED -D_USE_PTHREADS -D_USE_TERMIOS -D_FILE_OFFSET_BITS=64 -I/ew/earthworm_7.10/include -D_LINUX -Dlinux -D_INTEL -D_USE_SCHED -D_USE_PTHREADS -D_USE_TERMIOS -D_FILE_OFFSET_BITS=64 -I/ew/earthworm_7.10/include  -c -o libnetserv.o libnetserv.c
^Cmake[2]: *** [<builtin>: libnetserv.o] Interrupt
make[2]: *** Deleting intermediate file 'libcvrt.o'
make[2]: *** Deleting intermediate file 'libarchive.o'
make[1]: *** [makefile.unix:56: lib330] Interrupt
make: *** [Makefile:120: unix_libs] Interrupt

rpi@rpi-desktop:/ew/earthworm_7.10/src$

Baker, Lawrence M

unread,
Nov 26, 2021, 10:26:39 PM11/26/21
to Bob Hammond, Baker, Lawrence M, 'Meremonte, Mark E' via Earthworm Community Forum
Bob,

$ file /ew/earthworm_7.10/bin/startstop:

/ew/earthworm_7.10/bin/startstop: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=77d98926cff8805c2f8e3ed143a91858cf05abf3, with debug_info, not stripped

This says /ew/earthworm_7.10/bin/startstop is an x86_64 executable.  That clearly won't run on a Raspberry Pi. :)

Be sure to start clean before you compile.  Before you run "make", clean everything up.  For example:

$ cd /ew
$ ARCH=`uname -m`
$ EW_INSTALL_HOME="`pwd`" \
  EW_INSTALL_VERSION=earthworm_7.10 \
  source earthworm_7.10/environment/ew_linux_arm.bash
$ cd earthworm_7.10/src
$ make clean_unix 2>&1 | grep '[*][*][*]'
$ make clean_bin_unix 2>&1 | grep '[*][*][*]'
$ make unix &>../../make-RPi-${ARCH}-${EW_BITS}.log

There should be no output from the make clean and make clean_bin_unix commands.  After you make unix, these commands will look for errors in the log file:

$ tail ../../make-RPi-${ARCH}-${EW_BITS}.log
$ grep -i ': err' ../../make-RPi-${ARCH}-${EW_BITS}.log
$ grep '[*][*][*]' ../../make-RPi-${ARCH}-${EW_BITS}.log

The tail command shows the last few lines of he make.  The make should finish gracefully; no error message for an abort of the build.
The two grep commands look for errors.  There should not be any.

Larry Baker
US Geological Survey
650-329-5608
ba...@usgs.gov


Bob Hammond

unread,
Nov 27, 2021, 11:50:52 AM11/27/21
to Baker, Lawrence M, 'Meremonte, Mark E' via Earthworm Community Forum
Larry,

I followed your example and I think I'm almost in business!

I'm ok with the errors shown since I don't use hyp2000, Hypo71PC, or rayloc_ew.

rpi@rpi-desktop:/ew$ grep -i ':err' make-RPi-aarch64-64.log
rpi@rpi-desktop:/ew$ grep '[*][*][*]' make-RPi-aarch64-64.log
make[2]: *** [makefile.unix:32: /ew/earthworm_7.10/bin/hyp2000] Error 127
make[2]: *** [makefile.unix:29: /ew/earthworm_7.10/bin/hyp2000_mgr] Error 127
make[2]: *** [makefile.unix:18: /ew/earthworm_7.10/bin/Hypo71PC] Error 127
make[2]: *** [makefile.unix:61: /ew/earthworm_7.10/bin/rayloc_ew] Error 127
rpi@rpi-desktop:/ew$


Here's my latest error:

rpi@rpi-desktop:/ew/run_working/params$ source /ew/earthworm_7.10/environment/ew_linux_arm.bash
rpi@rpi-desktop:/ew/run_working/params$ startstop
startstop: Using config file startstop_unix.d
GetKey: Invalid ring name <MUX_DATA_RING>
startstop: Invalid Ring name <MUX_DATA_RING>; exiting!
rpi@rpi-desktop:/ew/run_working/params$ source ~/.bashrc
rpi@rpi-desktop:/ew/run_working/params$ startstop
startstop: Using config file startstop_unix.d
GetKey: Invalid ring name <MUX_DATA_RING>
startstop: Invalid Ring name <MUX_DATA_RING>; exiting!

Thanks for your help.

Bob

On Fri, Nov 26, 2021 at 7:26 PM Baker, Lawrence M <ba...@usgs.gov> wrote:
Bob,

Jonathan

unread,
Nov 27, 2021, 12:09:04 PM11/27/21
to earthwo...@googlegroups.com, Baker, Lawrence M
Bob,

You need gfortran installed to compile those. Is it installed?

Jonathan 
--
--
You received this message because you are subscribed to the Google
Groups "Earthworm Community Forum" group.
 
To post to this group, send an email to earthwo...@googlegroups.com
 
To unsubscribe from this group, send an email to
earthworm_for...@googlegroups.com
 
For more options, visit this group at
http://groups.google.com/group/earthworm_forum?hl=en

---
You received this message because you are subscribed to the Google Groups "Earthworm Community Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to earthworm_for...@googlegroups.com.

Bob Hammond

unread,
Nov 27, 2021, 1:21:22 PM11/27/21
to earthwo...@googlegroups.com, Baker, Lawrence M
Yes, it's installed.

Bob

Baker, Lawrence M

unread,
Nov 27, 2021, 2:06:21 PM11/27/21
to Bob Hammond, Baker, Lawrence M, 'Meremonte, Mark E' via Earthworm Community Forum
Bob,

Your Earthworm configuration files must not define MUX_DATA_RING.  You do not have to rebuild Earthworm to define MUX_DATA_RING.  That should be defined in earthworm.d.

I am not sure how you created your *.d and *.desc files.  The master earthworm*.d files are distributed in the environment directory, but they have to be in the params directory when you run your specific Earthworm.  The module-specific *.d and *.desc files can go there, or in subdirectories inside params.  You name the location (relative to params) of the .d file in the stanza for each module in startstop_unix.d.

As far as gfortran being installed, ew_linux_arm.bash should do that automatically.  Maybe you can post the commands to build hyp2000 from your log file.

Larry Baker
US Geological Survey
650-329-5608
ba...@usgs.gov


Baker, Lawrence M

unread,
Nov 27, 2021, 2:08:10 PM11/27/21
to Baker, Lawrence M, Bob Hammond, 'Meremonte, Mark E' via Earthworm Community Forum
FYI.  Error 127 means "command not found".  Make sure gfortran is in your PATH and that error should go away.

Larry Baker
US Geological Survey
650-329-5608
ba...@usgs.gov


Larry Cochrane

unread,
Nov 27, 2021, 2:58:39 PM11/27/21
to earthwo...@googlegroups.com
Bob,

The MUX_DATA_RING is something my digitizer modules use to send multiplexed ADC channel data to my ew2ws (Earthworm to
WinSDR) module. This is only needed if you want to send data to my WinSDR program. So either comment out the line in the
psnadsend.d file or define a new ring number in your earthworm.d file.

Larry Cochrane
Redwood City, PSN

On 11/27/2021 11:06 AM, 'Baker, Lawrence M' via Earthworm Community Forum wrote:
> Bob,
>
> Your Earthworm configuration files must not define MUX_DATA_RING.  You do not have to rebuild Earthworm to
> define MUX_DATA_RING.  That should be defined in earthworm.d.
>
> I am not sure how you created your *.d and *.desc files.  The master earthworm*.d files are distributed in the
> environment directory, but they have to be in the params directory when you run your specific Earthworm.  The
> module-specific *.d and *.desc files can go there, or in subdirectories inside params.  You name the location (relative
> to params) of the .d file in the stanza for each module in startstop_unix.d.
>
> As far as gfortran being installed, ew_linux_arm.bash should do that automatically.  Maybe you can post the commands to
> build hyp2000 from your log file.
>
> Larry Baker
> US Geological Survey
> 650-329-5608
> ba...@usgs.gov <mailto:ba...@usgs.gov>
>
>
>
>> On Nov 27 2021, at 8:50:15 AM, Bob Hammond <propg...@gmail.com <mailto:propg...@gmail.com>> wrote:
>>
>> Larry,
>>
>> I followed your example and I think I'm almost in business!
>>
>> I'm ok with the errors shown since I don't use hyp2000, Hypo71PC, or rayloc_ew.
>>
>> rpi@rpi-desktop:/ew$ grep -i ':err' make-RPi-aarch64-64.log
>> rpi@rpi-desktop:/ew$ grep '[*][*][*]' make-RPi-aarch64-64.log
>> make[2]: *** [makefile.unix:32: /ew/earthworm_7.10/bin/hyp2000] Error 127
>> make[2]: *** [makefile.unix:29: /ew/earthworm_7.10/bin/hyp2000_mgr] Error 127
>> make[2]: *** [makefile.unix:18: /ew/earthworm_7.10/bin/Hypo71PC] Error 127
>> make[2]: *** [makefile.unix:61: /ew/earthworm_7.10/bin/rayloc_ew] Error 127
>> rpi@rpi-desktop:/ew$
>>
>>
>> Here's my latest error:
>>
>> rpi@rpi-desktop:/ew/run_working/params$ source /ew/earthworm_7.10/environment/ew_linux_arm.bash
>> rpi@rpi-desktop:/ew/run_working/params$ startstop
>> startstop: Using config file startstop_unix.d
>> GetKey: Invalid ring name <MUX_DATA_RING>
>> startstop: Invalid Ring name <MUX_DATA_RING>; exiting!
>> rpi@rpi-desktop:/ew/run_working/params$ source ~/.bashrc
>> rpi@rpi-desktop:/ew/run_working/params$ startstop
>> startstop: Using config file startstop_unix.d
>> GetKey: Invalid ring name <MUX_DATA_RING>
>> startstop: Invalid Ring name <MUX_DATA_RING>; exiting!
>>
>> Thanks for your help.
>>
>> Bob
>>
>> ba...@usgs.gov <mailto:ba...@usgs.gov>
>>
>>
>>
>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Earthworm Community Forum" group.
>
> To post to this group, send an email to earthwo...@googlegroups.com
>
> To unsubscribe from this group, send an email to
> earthworm_for...@googlegroups.com
>
> For more options, visit this group at
> http://groups.google.com/group/earthworm_forum?hl=en <http://groups.google.com/group/earthworm_forum?hl=en>
>
> ---
> You received this message because you are subscribed to the Google Groups "Earthworm Community Forum" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to
> earthworm_for...@googlegroups.com <mailto:earthworm_for...@googlegroups.com>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/earthworm_forum/49C6A79D-B753-4E62-BBAE-18771843291C%40usgs.gov
> <https://groups.google.com/d/msgid/earthworm_forum/49C6A79D-B753-4E62-BBAE-18771843291C%40usgs.gov?utm_medium=email&utm_source=footer>.

Bob Hammond

unread,
Nov 27, 2021, 7:12:04 PM11/27/21
to earthwo...@googlegroups.com
I added MUX_DATA_RING to my earthworm.d and psnadsend.d.  EW is functioning correctly now on the RPi 4 (4GB) running Ubuntu Release 20.04.3 LTS (Focal Fossa) 64-bit.

Thanks Larry Baker and Larry Cochrane for all your help.

Bob

On Sat, Nov 27, 2021 at 11:58 AM Larry Cochrane <larr...@webtronics.com> wrote:
Bob,

The  is something my digitizer modules use to send multiplexed ADC channel data to my ew2ws (Earthworm to
To unsubscribe from this group and stop receiving emails from it, send an email to earthworm_for...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/earthworm_forum/4028b40b-fd5f-2b32-62e7-b0183f0a1a1f%40webtronics.com.
Reply all
Reply to author
Forward
0 new messages