Recent

Author Topic: UADE Library  (Read 4013 times)

Guva

  • Full Member
  • ***
  • Posts: 204
  • 🌈 ZX-Spectrum !!!
Re: UADE Library
« Reply #15 on: February 23, 2025, 06:07:02 pm »
symbol lookup error: lib/libuade.so: undefined symbol: strlcpy".
add -lbsd

TRon

  • Hero Member
  • *****
  • Posts: 4377
Re: UADE Library
« Reply #16 on: February 23, 2025, 06:29:15 pm »
add -lbsd
Unfortunately that suggestion also does not seem to improve things.

It seems like these libraries are added to the core, and not to libuade
Code: Bash  [Select][+][-]
  1. ...
  2. gcc -Wl,-soname,libuade.so -shared -o libuade.so -L/media/projects/work/work/bencodetools-v1.0.1/lib -Wl,-rpath,/media/projects/work/work/bencodetools-v1.0.1/lib -L/media/projects/work/work/libzakalwe-v1.0.0/lib -Wl,-rpath,/media/projects/work/work/libzakalwe-v1.0.0/lib -lm -lbencodetools -lzakalwe unixatomic.o uadeipc.o amifilemagic.o eagleplayer.o unixwalkdir.o effects.o uadecontrol.o uadeconf.o uadestate.o uadeutils.o md5.o ossupport.o rmc.o songdb.o songinfo.o vparray.o support.o fifo.o
  3. ar rcs libuade.a unixatomic.o uadeipc.o amifilemagic.o eagleplayer.o unixwalkdir.o effects.o uadecontrol.o uadeconf.o uadestate.o uadeutils.o md5.o ossupport.o rmc.o songdb.o songinfo.o vparray.o support.o fifo.o
  4. ...
  5. gcc  -o uadecore main.o newcpu.o memory.o custom.o cia.o audio.o compiler.o cpustbl.o missing.o sd-sound.o md-support.o cfgfile.o fpp.o debug.o readcpu.o cpudefs.o cpuemu1.o cpuemu2.o cpuemu3.o cpuemu4.o cpuemu5.o cpuemu6.o cpuemu7.o cpuemu8.o uade.o uadeipc.o uadeutils.o unixatomic.o ossupport.o uademain.o sinctable.o text_scope.o write_audio.o state_detection.o uade_logging.o -lm  -L/media/projects/work/work/bencodetools-v1.0.1/lib -Wl,-rpath,/media/projects/work/work/bencodetools-v1.0.1/lib -L/media/projects/work/work/libzakalwe-v1.0.0/lib -Wl,-rpath,/media/projects/work/work/libzakalwe-v1.0.0/lib -lzakalwe -lpthread -ldl -lbsd
  6.  

Code: Bash  [Select][+][-]
  1. nm -D lib/libuade.so
  2.                  U abort@GLIBC_2.2.5
  3.                  U access@GLIBC_2.2.5
  4.                  U __assert_fail@GLIBC_2.2.5
  5.                  U ben_blob
  6.                  U ben_decode
  7.                  U ben_dict
  8.                  U ben_dict_get
  9.                  U ben_dict_get_by_str
  10.                  U ben_dict_set_by_str
  11.                  U ben_free
  12.                  U calloc@GLIBC_2.2.5
  13.                  U close@GLIBC_2.2.5
  14.                  U closedir@GLIBC_2.2.5
  15.                  U __ctype_b_loc@GLIBC_2.3
  16.                  w __cxa_finalize@GLIBC_2.2.5
  17.                  U dirname@GLIBC_2.2.5
  18.                  U dup2@GLIBC_2.2.5
  19.                  U __errno_location@GLIBC_2.2.5
  20.                  U execlp@GLIBC_2.2.5
  21.                  U exit@GLIBC_2.2.5
  22.                  U fclose@GLIBC_2.2.5
  23.                  U fdopen@GLIBC_2.2.5
  24.                  U feof@GLIBC_2.2.5
  25.                  U ferror@GLIBC_2.2.5
  26.                  U fgets@GLIBC_2.2.5
  27. 0000000000016910 T fifo_create
  28. 0000000000016920 T fifo_erase_tail
  29. 0000000000016980 T fifo_free
  30. 00000000000169b0 T fifo_read
  31. 0000000000016af0 T fifo_write
  32.                  U fileno@GLIBC_2.2.5
  33.                  U fopen@GLIBC_2.2.5
  34.                  U fork@GLIBC_2.2.5
  35.                  U fprintf@GLIBC_2.2.5
  36.                  U fread@GLIBC_2.2.5
  37.                  U free@GLIBC_2.2.5
  38.                  U fseek@GLIBC_2.2.5
  39.                  U fstat@GLIBC_2.33
  40.                  U ftell@GLIBC_2.2.5
  41.                  U ftruncate@GLIBC_2.2.5
  42.                  U fwrite@GLIBC_2.2.5
  43.                  U getenv@GLIBC_2.2.5
  44.                  w __gmon_start__
  45.                  w _ITM_deregisterTMCloneTable
  46.                  w _ITM_registerTMCloneTable
  47.                  U kill@GLIBC_2.2.5
  48.                  U lockf@GLIBC_2.2.5
  49.                  U lstat@GLIBC_2.33
  50.                  U malloc@GLIBC_2.2.5
  51.                  U memcmp@GLIBC_2.2.5
  52.                  U memcpy@GLIBC_2.14
  53.                  U memmem@GLIBC_2.2.5
  54.                  U memmove@GLIBC_2.2.5
  55.                  U memset@GLIBC_2.2.5
  56.                  U mkdir@GLIBC_2.2.5
  57.                  U open@GLIBC_2.2.5
  58.                  U opendir@GLIBC_2.2.5
  59.                  U printf@GLIBC_2.2.5
  60.                  U qsort@GLIBC_2.2.5
  61.                  U read@GLIBC_2.2.5
  62.                  U readdir@GLIBC_2.2.5
  63.                  U realloc@GLIBC_2.2.5
  64.                  U rewinddir@GLIBC_2.2.5
  65.                  U select@GLIBC_2.2.5
  66.                  U sigaddset@GLIBC_2.2.5
  67.                  U sigemptyset@GLIBC_2.2.5
  68.                  U sigprocmask@GLIBC_2.2.5
  69.                  U sincos
  70.                  U snprintf@GLIBC_2.2.5
  71.                  U socketpair@GLIBC_2.2.5
  72.                  U stat@GLIBC_2.33
  73.                  U stderr@GLIBC_2.2.5
  74.                  U strcasecmp@GLIBC_2.2.5
  75.                  U strchr@GLIBC_2.2.5
  76.                  U strcmp@GLIBC_2.2.5
  77.                  U strcpy@GLIBC_2.2.5
  78.                  U strdup@GLIBC_2.2.5
  79.                  U strerror@GLIBC_2.2.5
  80.                  U strlcat
  81.                  U strlcpy
  82.                  U strlen@GLIBC_2.2.5
  83.                  U strncasecmp@GLIBC_2.2.5
  84.                  U strncmp@GLIBC_2.2.5
  85.                  U strrchr@GLIBC_2.2.5
  86.                  U strsep@GLIBC_2.2.5
  87.                  U strstr@GLIBC_2.2.5
  88.                  U strtod@GLIBC_2.2.5
  89.                  U strtol@GLIBC_2.2.5
  90.                  U sysconf@GLIBC_2.2.5
  91.                  U tan
  92. 0000000000013bc0 T uade_add_playtime
  93. 000000000000ac80 T uade_analyze_eagleplayer
  94. 0000000000012bd0 T uade_arch_kill_and_wait_uadecore
  95. 0000000000012c30 T uade_arch_spawn
  96. 0000000000006c60 T uade_atomic_close
  97. 0000000000006c90 T uade_atomic_dup2
  98. 0000000000011730 T uade_atomic_fread
  99. 00000000000117e0 T uade_atomic_fwrite
  100. 0000000000006cd0 T uade_atomic_read
  101. 0000000000006dd0 T uade_atomic_write
  102. 0000000000006f70 T uade_check_fix_string
  103. 000000000000f430 T uade_cleanup_notification
  104. 0000000000010ba0 T uade_cleanup_state
  105. 000000000000ce10 T uade_config_set_defaults
  106. 000000000000d8e0 T uade_config_set_option
  107. 000000000000e7a0 T uade_config_toggle_boolean
  108. 000000000000cec0 T uade_convert_to_double
  109. 00000000000127c0 T uade_dirname
  110. 000000000000ba80 T uade_effect_disable
  111. 000000000000ba70 T uade_effect_disable_all
  112. 000000000000ba90 T uade_effect_enable
  113. 000000000000c4d0 T uade_effect_gain_set_amount
  114. 000000000000baa0 T uade_effect_is_enabled
  115. 000000000000c520 T uade_effect_pan_set_amount
  116. 000000000000bac0 T uade_effect_run
  117. 000000000000c580 T uade_effect_set_defaults
  118. 000000000000c330 T uade_effect_set_sample_rate
  119. 000000000000c320 T uade_effect_toggle
  120. 0000000000011aa0 T uade_empty_file
  121. 000000000000eeb0 T uade_enable_uadecore_log_collection
  122. 000000000000ef90 T uade_event_name
  123. 0000000000011a20 T uade_file
  124. 0000000000008030 T uade_file_ext_to_format_version
  125. 0000000000011990 T uade_file_free
  126. 00000000000119c0 T uade_file_load
  127. 0000000000008090 T uade_filemagic
  128. 0000000000012780 T uade_filesize
  129. 0000000000012810 T uade_find_amiga_file
  130. 000000000000a8f0 T uade_free_playerstore
  131. 0000000000013dd0 T uade_free_song_db
  132. 0000000000010800 T uade_get_const_effective_config
  133. 00000000000107f0 T uade_get_effective_config
  134. 000000000000fd90 T uade_get_event
  135. 000000000000f420 T uade_get_fd
  136. 000000000000f190 T uade_get_filter_state
  137. 0000000000010810 T uade_get_rmc_from_state
  138. 000000000000f330 T uade_get_sampling_rate
  139. 000000000000f320 T uade_get_song_info
  140. 0000000000010820 T uade_get_time_position
  141. 00000000000165e0 T uade_get_two_ws_separated_fields
  142. 0000000000007b50 T uade_ipc_prepare_two_u32s
  143. 00000000000106b0 T uade_is_our_file
  144. 000000000000f520 T uade_is_our_file_from_buffer
  145. 0000000000012f70 T uade_is_rmc
  146. 0000000000012fa0 T uade_is_rmc_file
  147. 000000000000f180 T uade_is_seeking
  148. 000000000000f5a0 T uade_is_verbose
  149. 000000000000eec0 T uade_load_amiga_file
  150. 000000000000e510 T uade_load_config
  151. 000000000000e6a0 T uade_load_initial_config
  152. 000000000000d5c0 T uade_load_initial_song_conf
  153. 0000000000013c80 T uade_lookup_song
  154. 00000000000124c0 T uade_MD5Final
  155. 00000000000121e0 T uade_MD5Init
  156. 0000000000012200 T uade_MD5Update
  157. 000000000000d000 T uade_merge_configs
  158. 000000000000ce90 T uade_new_config
  159. 0000000000010c50 T uade_new_state
  160. 000000000000f050 T uade_next_subsong
  161. 000000000000d540 T uade_open_create_home
  162. 000000000000aad0 T uade_parse_attribute_from_string
  163. 000000000000d690 T uade_parse_subsongs
  164. 00000000000070b0 T uade_parse_two_u32s_message
  165. 0000000000007090 T uade_parse_u32_message
  166. 00000000000116d0 T uade_play
  167. 0000000000011700 T uade_play_from_buffer
  168. 000000000000c6e0 T uade_prepare_filter_command
  169. 0000000000010380 T uade_read
  170. 00000000000166e0 T uade_read_and_split_lines
  171. 0000000000013e20 T uade_read_content_db
  172. 0000000000011880 T uade_read_file
  173. 000000000000f490 T uade_read_notification
  174. 000000000000c6b0 T uade_read_request
  175. 0000000000014220 T uade_read_song_conf
  176. 00000000000072a0 T uade_receive_file
  177. 00000000000070e0 T uade_receive_message
  178. 0000000000007580 T uade_receive_short_message
  179. 0000000000007610 T uade_receive_string
  180. 0000000000007a90 T uade_request_amiga_file
  181. 0000000000013460 T uade_rmc_decode
  182. 00000000000134d0 T uade_rmc_decode_file
  183. 0000000000013000 T uade_rmc_get_file
  184. 0000000000013130 T uade_rmc_get_meta
  185. 0000000000013150 T uade_rmc_get_module
  186. 0000000000013540 T uade_rmc_get_song_length
  187. 0000000000013520 T uade_rmc_get_subsongs
  188. 0000000000013610 T uade_rmc_record_file
  189. 0000000000014620 T uade_save_content_db
  190. 000000000000f360 T uade_seek
  191. 000000000000f0b0 T uade_seek_samples
  192. 00000000000077c0 T uade_send_file
  193. 000000000000c720 T uade_send_filter_command
  194. 00000000000076d0 T uade_send_message
  195. 0000000000007990 T uade_send_short_message
  196. 00000000000079e0 T uade_send_string
  197. 0000000000007c10 T uade_send_two_u32s
  198. 0000000000007b20 T uade_send_u32
  199. 000000000000ef80 T uade_set_amiga_loader
  200. 000000000000a9e0 T uade_set_config_options_from_flags
  201. 00000000000108c0 T uade_set_debug
  202. 000000000000d800 T uade_set_effects
  203. 000000000000f1a0 T uade_set_filter_state
  204. 000000000000e800 T uade_set_options_from_ep_attributes
  205. 000000000000e4b0 T uade_set_options_from_song_attributes
  206. 0000000000007c60 T uade_set_peer
  207. 00000000000108d0 T uade_set_song_options
  208. 0000000000016520 T uade_skip_and_terminate_word
  209. 0000000000015cb0 T uade_song_info
  210. 000000000000c840 T uade_song_initialization
  211. 00000000000109c0 T uade_stop
  212. 000000000000c7d0 T uade_subsong_control
  213. 0000000000014760 T uade_test_silence
  214. 0000000000014840 T uade_update_song_conf
  215. 000000000000b7c0 T uade_walk_directories
  216. 00000000000165c0 T uade_xbasename
  217. 0000000000016690 T uade_xfgets
  218. 0000000000016100 T vparray_bsearch
  219. 0000000000016230 T vparray_create
  220. 00000000000162e0 T vparray_flush
  221. 0000000000016340 T vparray_free
  222. 00000000000161b0 T vparray_grow
  223. 0000000000016360 T vparray_pop_head
  224. 00000000000163e0 T vparray_pop_tail
  225. 0000000000016460 T vparray_remove
  226. 00000000000164b0 T vparray_search
  227. 00000000000164f0 T vparray_sort
  228.                  U waitpid@GLIBC_2.2.5
  229.                  U write@GLIBC_2.2.5
  230.  

Makes me wonder if perhaps the configure does somethings out of the ordinary with regards to the ARCHLIBS define. I'll try that next. e.g. I want to avoid meddling with the Makefile for libuade.
« Last Edit: February 23, 2025, 06:45:40 pm by TRon »
Today is tomorrow's yesterday.

Guva

  • Full Member
  • ***
  • Posts: 204
  • 🌈 ZX-Spectrum !!!
Re: UADE Library
« Reply #17 on: February 23, 2025, 07:02:36 pm »
add -lbsd
Unfortunately that suggestion also does not seem to improve things.

It seems like these libraries are added to the core, and not to libuade
Code: Bash  [Select][+][-]
  1. ...
  2. gcc -Wl,-soname,libuade.so -shared -o libuade.so -L/media/projects/work/work/bencodetools-v1.0.1/lib -Wl,-rpath,/media/projects/work/work/bencodetools-v1.0.1/lib -L/media/projects/work/work/libzakalwe-v1.0.0/lib -Wl,-rpath,/media/projects/work/work/libzakalwe-v1.0.0/lib -lm -lbencodetools -lzakalwe unixatomic.o uadeipc.o amifilemagic.o eagleplayer.o unixwalkdir.o effects.o uadecontrol.o uadeconf.o uadestate.o uadeutils.o md5.o ossupport.o rmc.o songdb.o songinfo.o vparray.o support.o fifo.o
  3. ar rcs libuade.a unixatomic.o uadeipc.o amifilemagic.o eagleplayer.o unixwalkdir.o effects.o uadecontrol.o uadeconf.o uadestate.o uadeutils.o md5.o ossupport.o rmc.o songdb.o songinfo.o vparray.o support.o fifo.o
  4. ...
  5. gcc  -o uadecore main.o newcpu.o memory.o custom.o cia.o audio.o compiler.o cpustbl.o missing.o sd-sound.o md-support.o cfgfile.o fpp.o debug.o readcpu.o cpudefs.o cpuemu1.o cpuemu2.o cpuemu3.o cpuemu4.o cpuemu5.o cpuemu6.o cpuemu7.o cpuemu8.o uade.o uadeipc.o uadeutils.o unixatomic.o ossupport.o uademain.o sinctable.o text_scope.o write_audio.o state_detection.o uade_logging.o -lm  -L/media/projects/work/work/bencodetools-v1.0.1/lib -Wl,-rpath,/media/projects/work/work/bencodetools-v1.0.1/lib -L/media/projects/work/work/libzakalwe-v1.0.0/lib -Wl,-rpath,/media/projects/work/work/libzakalwe-v1.0.0/lib -lzakalwe -lpthread -ldl -lbsd
  6.  

Code: Bash  [Select][+][-]
  1. nm -D lib/libuade.so
  2.                  U abort@GLIBC_2.2.5
  3.                  U access@GLIBC_2.2.5
  4.                  U __assert_fail@GLIBC_2.2.5
  5.                  U ben_blob
  6.                  U ben_decode
  7.                  U ben_dict
  8.                  U ben_dict_get
  9.                  U ben_dict_get_by_str
  10.                  U ben_dict_set_by_str
  11.                  U ben_free
  12.                  U calloc@GLIBC_2.2.5
  13.                  U close@GLIBC_2.2.5
  14.                  U closedir@GLIBC_2.2.5
  15.                  U __ctype_b_loc@GLIBC_2.3
  16.                  w __cxa_finalize@GLIBC_2.2.5
  17.                  U dirname@GLIBC_2.2.5
  18.                  U dup2@GLIBC_2.2.5
  19.                  U __errno_location@GLIBC_2.2.5
  20.                  U execlp@GLIBC_2.2.5
  21.                  U exit@GLIBC_2.2.5
  22.                  U fclose@GLIBC_2.2.5
  23.                  U fdopen@GLIBC_2.2.5
  24.                  U feof@GLIBC_2.2.5
  25.                  U ferror@GLIBC_2.2.5
  26.                  U fgets@GLIBC_2.2.5
  27. 0000000000016910 T fifo_create
  28. 0000000000016920 T fifo_erase_tail
  29. 0000000000016980 T fifo_free
  30. 00000000000169b0 T fifo_read
  31. 0000000000016af0 T fifo_write
  32.                  U fileno@GLIBC_2.2.5
  33.                  U fopen@GLIBC_2.2.5
  34.                  U fork@GLIBC_2.2.5
  35.                  U fprintf@GLIBC_2.2.5
  36.                  U fread@GLIBC_2.2.5
  37.                  U free@GLIBC_2.2.5
  38.                  U fseek@GLIBC_2.2.5
  39.                  U fstat@GLIBC_2.33
  40.                  U ftell@GLIBC_2.2.5
  41.                  U ftruncate@GLIBC_2.2.5
  42.                  U fwrite@GLIBC_2.2.5
  43.                  U getenv@GLIBC_2.2.5
  44.                  w __gmon_start__
  45.                  w _ITM_deregisterTMCloneTable
  46.                  w _ITM_registerTMCloneTable
  47.                  U kill@GLIBC_2.2.5
  48.                  U lockf@GLIBC_2.2.5
  49.                  U lstat@GLIBC_2.33
  50.                  U malloc@GLIBC_2.2.5
  51.                  U memcmp@GLIBC_2.2.5
  52.                  U memcpy@GLIBC_2.14
  53.                  U memmem@GLIBC_2.2.5
  54.                  U memmove@GLIBC_2.2.5
  55.                  U memset@GLIBC_2.2.5
  56.                  U mkdir@GLIBC_2.2.5
  57.                  U open@GLIBC_2.2.5
  58.                  U opendir@GLIBC_2.2.5
  59.                  U printf@GLIBC_2.2.5
  60.                  U qsort@GLIBC_2.2.5
  61.                  U read@GLIBC_2.2.5
  62.                  U readdir@GLIBC_2.2.5
  63.                  U realloc@GLIBC_2.2.5
  64.                  U rewinddir@GLIBC_2.2.5
  65.                  U select@GLIBC_2.2.5
  66.                  U sigaddset@GLIBC_2.2.5
  67.                  U sigemptyset@GLIBC_2.2.5
  68.                  U sigprocmask@GLIBC_2.2.5
  69.                  U sincos
  70.                  U snprintf@GLIBC_2.2.5
  71.                  U socketpair@GLIBC_2.2.5
  72.                  U stat@GLIBC_2.33
  73.                  U stderr@GLIBC_2.2.5
  74.                  U strcasecmp@GLIBC_2.2.5
  75.                  U strchr@GLIBC_2.2.5
  76.                  U strcmp@GLIBC_2.2.5
  77.                  U strcpy@GLIBC_2.2.5
  78.                  U strdup@GLIBC_2.2.5
  79.                  U strerror@GLIBC_2.2.5
  80.                  U strlcat
  81.                  U strlcpy
  82.                  U strlen@GLIBC_2.2.5
  83.                  U strncasecmp@GLIBC_2.2.5
  84.                  U strncmp@GLIBC_2.2.5
  85.                  U strrchr@GLIBC_2.2.5
  86.                  U strsep@GLIBC_2.2.5
  87.                  U strstr@GLIBC_2.2.5
  88.                  U strtod@GLIBC_2.2.5
  89.                  U strtol@GLIBC_2.2.5
  90.                  U sysconf@GLIBC_2.2.5
  91.                  U tan
  92. 0000000000013bc0 T uade_add_playtime
  93. 000000000000ac80 T uade_analyze_eagleplayer
  94. 0000000000012bd0 T uade_arch_kill_and_wait_uadecore
  95. 0000000000012c30 T uade_arch_spawn
  96. 0000000000006c60 T uade_atomic_close
  97. 0000000000006c90 T uade_atomic_dup2
  98. 0000000000011730 T uade_atomic_fread
  99. 00000000000117e0 T uade_atomic_fwrite
  100. 0000000000006cd0 T uade_atomic_read
  101. 0000000000006dd0 T uade_atomic_write
  102. 0000000000006f70 T uade_check_fix_string
  103. 000000000000f430 T uade_cleanup_notification
  104. 0000000000010ba0 T uade_cleanup_state
  105. 000000000000ce10 T uade_config_set_defaults
  106. 000000000000d8e0 T uade_config_set_option
  107. 000000000000e7a0 T uade_config_toggle_boolean
  108. 000000000000cec0 T uade_convert_to_double
  109. 00000000000127c0 T uade_dirname
  110. 000000000000ba80 T uade_effect_disable
  111. 000000000000ba70 T uade_effect_disable_all
  112. 000000000000ba90 T uade_effect_enable
  113. 000000000000c4d0 T uade_effect_gain_set_amount
  114. 000000000000baa0 T uade_effect_is_enabled
  115. 000000000000c520 T uade_effect_pan_set_amount
  116. 000000000000bac0 T uade_effect_run
  117. 000000000000c580 T uade_effect_set_defaults
  118. 000000000000c330 T uade_effect_set_sample_rate
  119. 000000000000c320 T uade_effect_toggle
  120. 0000000000011aa0 T uade_empty_file
  121. 000000000000eeb0 T uade_enable_uadecore_log_collection
  122. 000000000000ef90 T uade_event_name
  123. 0000000000011a20 T uade_file
  124. 0000000000008030 T uade_file_ext_to_format_version
  125. 0000000000011990 T uade_file_free
  126. 00000000000119c0 T uade_file_load
  127. 0000000000008090 T uade_filemagic
  128. 0000000000012780 T uade_filesize
  129. 0000000000012810 T uade_find_amiga_file
  130. 000000000000a8f0 T uade_free_playerstore
  131. 0000000000013dd0 T uade_free_song_db
  132. 0000000000010800 T uade_get_const_effective_config
  133. 00000000000107f0 T uade_get_effective_config
  134. 000000000000fd90 T uade_get_event
  135. 000000000000f420 T uade_get_fd
  136. 000000000000f190 T uade_get_filter_state
  137. 0000000000010810 T uade_get_rmc_from_state
  138. 000000000000f330 T uade_get_sampling_rate
  139. 000000000000f320 T uade_get_song_info
  140. 0000000000010820 T uade_get_time_position
  141. 00000000000165e0 T uade_get_two_ws_separated_fields
  142. 0000000000007b50 T uade_ipc_prepare_two_u32s
  143. 00000000000106b0 T uade_is_our_file
  144. 000000000000f520 T uade_is_our_file_from_buffer
  145. 0000000000012f70 T uade_is_rmc
  146. 0000000000012fa0 T uade_is_rmc_file
  147. 000000000000f180 T uade_is_seeking
  148. 000000000000f5a0 T uade_is_verbose
  149. 000000000000eec0 T uade_load_amiga_file
  150. 000000000000e510 T uade_load_config
  151. 000000000000e6a0 T uade_load_initial_config
  152. 000000000000d5c0 T uade_load_initial_song_conf
  153. 0000000000013c80 T uade_lookup_song
  154. 00000000000124c0 T uade_MD5Final
  155. 00000000000121e0 T uade_MD5Init
  156. 0000000000012200 T uade_MD5Update
  157. 000000000000d000 T uade_merge_configs
  158. 000000000000ce90 T uade_new_config
  159. 0000000000010c50 T uade_new_state
  160. 000000000000f050 T uade_next_subsong
  161. 000000000000d540 T uade_open_create_home
  162. 000000000000aad0 T uade_parse_attribute_from_string
  163. 000000000000d690 T uade_parse_subsongs
  164. 00000000000070b0 T uade_parse_two_u32s_message
  165. 0000000000007090 T uade_parse_u32_message
  166. 00000000000116d0 T uade_play
  167. 0000000000011700 T uade_play_from_buffer
  168. 000000000000c6e0 T uade_prepare_filter_command
  169. 0000000000010380 T uade_read
  170. 00000000000166e0 T uade_read_and_split_lines
  171. 0000000000013e20 T uade_read_content_db
  172. 0000000000011880 T uade_read_file
  173. 000000000000f490 T uade_read_notification
  174. 000000000000c6b0 T uade_read_request
  175. 0000000000014220 T uade_read_song_conf
  176. 00000000000072a0 T uade_receive_file
  177. 00000000000070e0 T uade_receive_message
  178. 0000000000007580 T uade_receive_short_message
  179. 0000000000007610 T uade_receive_string
  180. 0000000000007a90 T uade_request_amiga_file
  181. 0000000000013460 T uade_rmc_decode
  182. 00000000000134d0 T uade_rmc_decode_file
  183. 0000000000013000 T uade_rmc_get_file
  184. 0000000000013130 T uade_rmc_get_meta
  185. 0000000000013150 T uade_rmc_get_module
  186. 0000000000013540 T uade_rmc_get_song_length
  187. 0000000000013520 T uade_rmc_get_subsongs
  188. 0000000000013610 T uade_rmc_record_file
  189. 0000000000014620 T uade_save_content_db
  190. 000000000000f360 T uade_seek
  191. 000000000000f0b0 T uade_seek_samples
  192. 00000000000077c0 T uade_send_file
  193. 000000000000c720 T uade_send_filter_command
  194. 00000000000076d0 T uade_send_message
  195. 0000000000007990 T uade_send_short_message
  196. 00000000000079e0 T uade_send_string
  197. 0000000000007c10 T uade_send_two_u32s
  198. 0000000000007b20 T uade_send_u32
  199. 000000000000ef80 T uade_set_amiga_loader
  200. 000000000000a9e0 T uade_set_config_options_from_flags
  201. 00000000000108c0 T uade_set_debug
  202. 000000000000d800 T uade_set_effects
  203. 000000000000f1a0 T uade_set_filter_state
  204. 000000000000e800 T uade_set_options_from_ep_attributes
  205. 000000000000e4b0 T uade_set_options_from_song_attributes
  206. 0000000000007c60 T uade_set_peer
  207. 00000000000108d0 T uade_set_song_options
  208. 0000000000016520 T uade_skip_and_terminate_word
  209. 0000000000015cb0 T uade_song_info
  210. 000000000000c840 T uade_song_initialization
  211. 00000000000109c0 T uade_stop
  212. 000000000000c7d0 T uade_subsong_control
  213. 0000000000014760 T uade_test_silence
  214. 0000000000014840 T uade_update_song_conf
  215. 000000000000b7c0 T uade_walk_directories
  216. 00000000000165c0 T uade_xbasename
  217. 0000000000016690 T uade_xfgets
  218. 0000000000016100 T vparray_bsearch
  219. 0000000000016230 T vparray_create
  220. 00000000000162e0 T vparray_flush
  221. 0000000000016340 T vparray_free
  222. 00000000000161b0 T vparray_grow
  223. 0000000000016360 T vparray_pop_head
  224. 00000000000163e0 T vparray_pop_tail
  225. 0000000000016460 T vparray_remove
  226. 00000000000164b0 T vparray_search
  227. 00000000000164f0 T vparray_sort
  228.                  U waitpid@GLIBC_2.2.5
  229.                  U write@GLIBC_2.2.5
  230.  

Makes me wonder if perhaps the configure does somethings out of the ordinary with regards to the ARCHLIBS define. I'll try that next. e.g. I want to avoid meddling with the Makefile for libuade.
https://gitlab.com/uade-music-player/uade/-/blob/uade-3.05/src/frontends/libuade/Makefile.in
CLIBS = {ARCHLIBS} -lm -lbencodetools -lzakalwe

TRon

  • Hero Member
  • *****
  • Posts: 4377
Re: UADE Library
« Reply #18 on: February 23, 2025, 08:05:24 pm »
Yes, thank you Guva. As said I wanted to avoid meddling with that makefile one of the reasons being that I've already tried that  :)

re-formatted for better reading experience:
Code: Bash  [Select][+][-]
  1. gcc -Wl,-soname,libuade.so -shared -o libuade.so
  2.   -L/media/projects/work/work/bencodetools-v1.0.1/lib
  3.   -Wl,-rpath,/media/projects/work/work/bencodetools-v1.0.1/lib
  4.   -L/media/projects/work/work/libzakalwe-v1.0.0/lib
  5.   -Wl,-rpath,/media/projects/work/work/libzakalwe-v1.0.0/lib
  6.   -lm -lbencodetools -lzakalwe -lpthread -ldl -lbsd
  7.   unixatomic.o uadeipc.o amifilemagic.o eagleplayer.o unixwalkdir.o effects.o uadecontrol.o uadeconf.o uadestate.o uadeutils.o md5.o ossupport.o rmc.o songdb.o songinfo.o vparray.o support.o fifo.o
  8.  
  9. ar rcs libuade.a
  10.   unixatomic.o uadeipc.o amifilemagic.o eagleplayer.o unixwalkdir.o effects.o uadecontrol.o uadeconf.o uadestate.o uadeutils.o md5.o ossupport.o rmc.o songdb.o songinfo.o vparray.o support.o fifo.o
  11.  
  12. gmake[1]: Leaving directory '/media/projects/work/work/uade-uade-3.05/src/frontends/libuade'
  13.  
So, that works. Yes ?

Code: Bash  [Select][+][-]
  1. ldd lib/libuade.so
  2.         linux-vdso.so.1 (0x00007ffeb051e000)
  3.         libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f6ee368e000)
  4.         /lib64/ld-linux-x86-64.so.2 (0x00007f6ee38ad000)
  5.  
Unfortunately, nope  :)

So what else can we do ? Add the same libraries as dependency in the archive in the ar command or ... ?
Today is tomorrow's yesterday.

Gigatron

  • Sr. Member
  • ****
  • Posts: 354
  • Amiga Rulez !!
    • Gigatron Shader Network Demo
Re: UADE Library
« Reply #19 on: February 23, 2025, 09:49:08 pm »
@Gigatron:
Did you just stuffed everything inside the DLL ?

BTW for loading files:
Code: Pascal  [Select][+][-]
  1.   uade_file := uade_file_load(pchar(Filename));
  2.   PrintStatus( assigned(uade_file), 'uade file loaded', 'unable to load uade file' );
  3.   PrintInfo('uade_file.data = %p', [pointer(uade_file^.data)]);
  4.   PrintInfo('uade_file.size = %d', [uade_file^.size]);
  5.  
  6.   retval := uade_play_from_buffer(nil, uade_file^.data, uade_file^.size, -1, uade_state);
  7.   PrintStatus( retval = 1, 'play song', 'play song failure' );
  8.   uade_file_free(uade_file);
  9.  

Hi @Tron

uade_file_load not used in my project  , using :
Code: Pascal  [Select][+][-]
  1. uade_buff_play := uade_play_from_buffer(Pchar(ListBox1.Items[ListBox1.ItemIndex]), @Buffer[0], Length(Buffer),-1, uade_st);
  2.      
After that ,
Code: Pascal  [Select][+][-]
  1. procedure FillBuff(bufferIndex: Integer);
  2. var
  3.   GenSmp, NumSmp : Integer;
  4. begin
  5.   if ok_flag then
  6.   begin
  7.  
  8.     bufferIndex := Form1.currentBuffer;
  9.     NumSmp := BufSize div (Channels * (BitsPerSample div 16));
  10.     GenSmp := uade_read(@Form1.buffers[bufferIndex][0],NumSmp*4 , uade_st);
  11.   end;
  12. end;

Here are the functions in the uade.dll :
Code: Pascal  [Select][+][-]
  1. procedure uade_cleanup_state(st: PUADEState); cdecl;   external 'uade.dll' name 'uade_cleanup_state';
  2. procedure uade_enable_uadecore_log_collection(st: PUADEState); cdecl; external 'uade.dll';
  3.  
  4. procedure uade_effect_disable(st: TUADEState; effect: TUADEEffect); cdecl; external 'uade.dll';
  5. procedure uade_effect_disable_all(st: TUADEState); cdecl; external 'uade.dll';
  6. procedure uade_effect_enable(st: PUADEState; effect: TUADEEffect); cdecl; external 'uade.dll';
  7. function uade_effect_is_enabled(st: TUADEState; effect: TUADEEffect): Integer; cdecl; external 'uade.dll';
  8. procedure uade_effect_toggle(st: PUADEState; effect: TUADEEffect); cdecl; external 'uade.dll';
  9. procedure uade_effect_gain_set_amount(st: TUADEState; amount: Single); cdecl; external 'uade.dll';
  10. procedure uade_effect_pan_set_amount(st: TUADEState; amount: Single); cdecl; external 'uade.dll';
  11. function uade_event_name(event: PUADEEvent): PChar; cdecl; external 'uade.dll';
  12. function uade_get_effective_config(st: PUADEState): PUADEConfig; cdecl; external 'uade.dll';
  13.  
  14.  
  15. function uade_get_event(event: TUADEEvent; st: PUADEState): Integer; cdecl; external 'uade.dll';
  16.  
  17.  
  18.  
  19. function uade_get_fd(st: TUADEState): Integer; cdecl; external 'uade.dll';
  20. function uade_get_filter_state(st: TUADEState): Integer; cdecl; external 'uade.dll';
  21.  
  22. function uade_read(buff: Pointer; bufferSize: Integer; st: Pointer): Integer; cdecl; external 'uade.dll' name 'uade_read';
  23.  
  24. function uade_read_notification(notification: TUADEEvent; st: PUADEState): Integer; cdecl; external 'uade.dll';
  25.  
  26. procedure uade_cleanup_notification(notification: PUADEEvent); cdecl; external 'uade.dll';
  27. function uade_get_sampling_rate(st: PUADEState): Integer; cdecl; external 'uade.dll';
  28.  
  29. function uade_get_song_info(st: PUADEState): PUADESongInfo; cdecl; external 'uade.dll';
  30. function uade_song_info(info:Pchar;size:Integer;fname: Pchar;typ :TUADESongInfoType):integer; cdecl; external 'uade.dll';
  31.  
  32. function uade_is_our_file(fname: PChar; st: PUADEState): integer; cdecl; external 'uade.dll';
  33. function uade_is_our_file_from_buffer(fname: PChar; buf: Pointer; size: SizeInt; st: PUADEState): Integer; cdecl; external 'uade.dll';
  34. function uade_is_rmc(buf: PChar; size: SizeInt): Integer; cdecl; external 'uade.dll';
  35. function uade_is_rmc_file(fname: PChar): Integer; cdecl; external 'uade.dll';
  36. function uade_is_verbose(st: TUADEState): Integer; cdecl; external 'uade.dll';
  37.  
  38. function uade_rmc_decode(buff : pointer; sz : integer):Pointer; cdecl; external 'uade.dll';
  39.  ///
  40. function uade_get_rmc_from_state(st: PUADEState): Pointer; cdecl; external 'uade.dll';
  41.  
  42. function uade_next_subsong(st: TUADEState): Integer; cdecl; external 'uade.dll';
  43.  
  44. function uade_play(fname: PChar; subsong: Integer; st: PUADEState): Integer; cdecl; external 'uade.dll';
  45.  
  46. function uade_play_from_buffer(  fname: PChar;  buf: Pointer; size: SizeUInt; subsong: Integer; st: PUADEState): integer; cdecl; external 'uade.dll';
  47. function uade_load_amiga_file(name: PChar; playerdir: PChar; st: PUADEState): PUADEFile; cdecl; external 'uade.dll';
  48. function uade_new_state( const uc: PUADEConfig): PUADEState; cdecl; external 'uade.dll' name 'uade_new_state';
  49.  
  50. function uade_stop(st: PUADEState): Integer; cdecl;  external 'uade.dll' name 'uade_stop';
  51.  
  52. function uade_file(name : Pchar; data : Pointer; size : integer):PUADEFile; cdecl; external 'uade.dll';
  53. function uade_file_load(fname : Pchar):PUADEFile; cdecl; external 'uade.dll';
  54. procedure uade_file_free(fl :PUADEFile);cdecl; external 'uade.dll';
  55.  
  56. procedure uade_read_file(fsize: integer;  filename:Pchar);cdecl; external 'uade.dll';
  57.  
  58. // config
  59. procedure uade_config_set_defaults(uc: PUADEConfig); cdecl; external 'uade.dll';
  60. function uade_convert_to_double(value: PChar; def, low, high: Double; typ: PChar): Double; cdecl; external 'uade.dll';
  61. function uade_load_config(st: PUADEState; filename: PChar): Integer; cdecl; external 'uade.dll';
  62.  
  63. function uade_load_initial_config(st: PUADEState ; bdir: PChar): Integer; cdecl; external 'uade.dll';
  64.  
  65. function uade_load_initial_song_conf(songconfname: PChar; maxlen: SizeUInt; uc: PUADEConfig): Integer; cdecl; external 'uade.dll';
  66. procedure uade_merge_configs(ucd: PUADEConfig; const ucs: PUADEConfig); cdecl; external 'uade.dll';
  67. function uade_open_create_home: PChar; cdecl; external 'uade.dll';
  68. function uade_parse_subsongs(subsongs: Integer; option: PChar): Integer; cdecl; external 'uade.dll';
  69.  
  70. procedure uade_config_set_option(uc: PUADEConfig; opt: TUADEOption; value: PChar); cdecl; external 'uade.dll';
  71.  
  72. procedure uade_set_effects(st: PUADEState); cdecl; external 'uade.dll';
  73. procedure uade_set_ep_attributes(st: PUADEState); cdecl; external 'uade.dll';
  74. function  uade_set_song_attributes(st: PUADEState; playername: PChar; playernamelen: SizeUInt): Integer; cdecl; external 'uade.dll';
  75. procedure uade_set_filter_type(uc: PUADEConfig; value: PChar); cdecl; external 'uade.dll';
  76.  
  77. function uade_set_song_options(sfile: PChar; sopt: PChar; state: PUADEState): Integer; cdecl; external 'uade.dll';
  78.  
  79. function uade_new_config: PUADEConfig; cdecl; external 'uade.dll' name 'uade_new_config';
  80.  
  81. function uade_config_toggle_boolean(uc: PUADEConfig; opt: TUADEOption): Integer; cdecl; external 'uade.dll';
  82. function uade_set_filter_state(st: PUADEState; newstate : integer):integer; cdecl; external 'uade.dll';
  83.  
  84. function uade_analyze_eagleplayer(detect_info: TUADEDetectionInfo;data: Pointer; data_size: integer; filename: PChar;filename_len: integer;st: PUADEState): Integer; cdecl; external 'uade.dll';
  85.  
  86. function  uade_seek(md : TUADESeekMode; sec , sub_sng : integer ; st : PUADEState): Integer; cdecl; external 'uade.dll';
  87.                  

Anyway this library took me a lot of time and work, plus some formats don't play don't know why !


Coding faster than Light !

TRon

  • Hero Member
  • *****
  • Posts: 4377
Re: UADE Library
« Reply #20 on: February 23, 2025, 10:30:53 pm »
uade_file_load not used in my project  , using :
Code: Pascal  [Select][+][-]
  1. uade_buff_play := uade_play_from_buffer(Pchar(ListBox1.Items[ListBox1.ItemIndex]), @Buffer[0], Length(Buffer),-1, uade_st);
Ah ok. I missed that. Yes, I also use play_from_buffer only let uade do the loading part as well. Something similar can be used to detect the file-format (beforehand).

Quote
Anyway this library took me a lot of time and work...
Yeah, uade is a bit of a hard-ball but it is not that strange considered it uses UAE for emulation.

Quote
, plus some formats don't play don't know why !
Can you share which formats and/or example mods ? I can at least try to play them with my ao audio back-end.

Does your implementation also allows for notification feedback from the core so that you can analyze what might go wrong when loading those modules that won't play ?
Today is tomorrow's yesterday.

Gigatron

  • Sr. Member
  • ****
  • Posts: 354
  • Amiga Rulez !!
    • Gigatron Shader Network Demo
Re: UADE Library
« Reply #21 on: February 23, 2025, 11:15:50 pm »
You can download all here on my ftp server :

http://gigatron3k.free.fr/lazarus/Uade_lib4.zip

Quote
Does your implementation also allows for notification feedback from the core so that you can analyze what might go wrong when loading those modules that won't play ?

Good idea , will see that;


Coding faster than Light !

 

TinyPortal © 2005-2018