Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GMT broken when works with SQLite on Archlinux #393

Closed
htyeim opened this issue Jul 13, 2020 · 27 comments
Closed

GMT broken when works with SQLite on Archlinux #393

htyeim opened this issue Jul 13, 2020 · 27 comments

Comments

@htyeim
Copy link
Contributor

htyeim commented Jul 13, 2020

I have found a very trick problem.
When I move some code to my desktop which runs Archlinux, GMT.jl will broke in some cases.

julia> using SQLite
julia> using GMT
julia> makecpt(color=:jet);
ERROR: could not load library "/usr/lib/libgmt.so"
/usr/bin/../lib/libgdal.so.26: undefined symbol: sqlite3_column_table_name
Stacktrace:
 [1] GMT_Create_Session at /home/t/.julia/packages/GMT/oeYJl/src/libgmt.jl:26 [inlined] (repeats 2 times)
 [2] gmt(::String, ::Nothing) at /home/t/.julia/packages/GMT/oeYJl/src/gmt_main.jl:125
 [3] makecpt(::String, ::Nothing; kwargs::Base.Iterators.Pairs{Symbol,Symbol,Tuple{Symbol},NamedTuple{(:color,),Tuple{Symbol}}}) at /home/t/.julia/packages/GMT/oeYJl/src/makecpt.jl:92
 [4] top-level scope at REPL[3]:1
caused by [exception 1]
UndefVarError: API not defined
Stacktrace:
 [1] gmt(::String, ::Nothing) at /home/t/.julia/packages/GMT/oeYJl/src/gmt_main.jl:122
 [2] makecpt(::String, ::Nothing; kwargs::Base.Iterators.Pairs{Symbol,Symbol,Tuple{Symbol},NamedTuple{(:color,),Tuple{Symbol}}}) at /home/t/.julia/packages/GMT/oeYJl/src/makecpt.jl:92
 [3] top-level scope at REPL[3]:1

Changing the sequence of using SQLite and GMT cann't solve the problem. But if I run makecpt after using GMT then using SQLite, the problem will disappear.

Another thing is all code works just fine on macOS (with brew).

At first I felt that the versions of gdal (3.1.2 on macOS, 3.0.4 on Archlinux may be the key. But after compiling gdal 3.1.2 from source
and replace the link in /usr/lib, the problem still exist.

As running makecpt after using GMT then using SQLite can solve the problem, I think this may be related to some dynamic code generation in GMT.jl

julia> using GMT

julia> makecpt(color=:jet);

julia> using SQLite

julia> makecpt(color=:jet);

julia> 
@joa-quim
Copy link
Member

This is a very mysterious issue on *nix. I have had a few reports of ERROR: could not load library "libgmt.so", which is a system error and normally means some dependency, or dependency of dependency, or ..., is in conflict or missing. You probably already looked at #298 that is even more strange. In this case, your system was a nice guy and reported what was missing but most of times it's just a cannot load lib vague error.

What appears to be happening is that the first using SQLite sets some kind of path that causes your libgdal not to be able to load the sqlite3 lib. Very mysterious but very *nix.

@joa-quim
Copy link
Member

Hmm, at this point

julia> using SQLite
julia> using GMT
julia> makecpt(color=:jet);
ERROR: could not load library "/usr/lib/libgmt.so"

you should be able to run a the nm command on libgmt.so, from within Julia and with the run(` ...`) mechanism to try to find if some dependency is declared broken/missing

@htyeim
Copy link
Contributor Author

htyeim commented Jul 13, 2020

The result shows below:

julia> run(`nm -D /usr/lib/libgmt.so`)
                 U access
                 U acos
                 U acosf
                 U acosh
                 U acoshf
0000000000052280 T api_get_record_fp
0000000000051d50 T api_get_record_fp_first
0000000000050a10 T api_get_record_matrix
0000000000050070 T api_get_record_vector
                 U asin
                 U asinf
                 U asinh
                 U asinhf
                 U atan
                 U atan2
                 U atanf
                 U atanh
                 U atanhf
                 U backtrace
                 U backtrace_symbols_fd
00000000004c0050 B __bss_start
                 U calloc
                 U ceil
                 U chdir
                 U chmod
00000000004c0140 B cleanup_action
                 U clock
                 U close
                 U closedir
00000000001d84e0 T core_module_classic_all
00000000001d8520 T core_module_group
00000000001d8500 T core_module_keys
00000000001d84c0 T core_module_list_all
00000000001d84a0 T core_module_show_all
                 U cos
                 U cosf
                 U cosh
                 U coshf
                 U CPLErrorReset
                 U CPLGetLastErrorMsg
                 U CPLGetLastErrorNo
                 U CPLPopErrorHandler
                 U CPLPushErrorHandler
                 U CPLQuietErrorHandler
                 U CPLSetConfigOption
                 U CSLAddString
                 U CSLCount
                 U CSLDestroy
                 U __ctype_b_loc
                 U __ctype_tolower_loc
                 U __ctype_toupper_loc
                 U curl_easy_cleanup
                 U curl_easy_getinfo
                 U curl_easy_init
                 U curl_easy_perform
                 U curl_easy_setopt
                 U curl_easy_strerror
                 U curl_global_cleanup
                 U curl_global_init
                 w __cxa_finalize
00000000004c00a0 B default_action
                 U dgemm_
                 U dladdr
                 U dlclose
                 U dlerror
                 U dlopen
0000000000131b30 T dlopen_special
                 U dlsym
0000000000130e10 T doubleAlmostEqualUlps
0000000000130d60 T doubleAlmostEqualUlpsAndAbs
                 U dsyev_
                 U dup2
00000000004c0050 D _edata
00000000004e0930 B _end
                 U erf
                 U erfc
                 U erfcf
                 U erff
                 U __errno_location
                 U execl
                 U exit
                 U exp
                 U expf
                 U fclose
                 U fcntl
                 U fdopen
                 U feof
                 U fflush
                 U fftwf_cleanup_threads
                 U fftwf_destroy_plan
                 U fftwf_execute
                 U fftwf_export_wisdom_to_filename
                 U fftwf_free
                 U fftwf_import_system_wisdom
                 U fftwf_import_wisdom_from_filename
                 U fftwf_init_threads
                 U fftwf_malloc
                 U fftwf_plan_dft_1d
                 U fftwf_plan_dft_2d
                 U fftwf_plan_with_nthreads
                 U fgetc
                 U fgets
                 U fileno
00000000004c0080 B file_to_delete_if_ctrl_C
                 U finishGEOS
0000000000130dd0 T floatAlmostEqualUlps
0000000000130d00 T floatAlmostEqualUlpsAndAbs
                 U floor
                 U fmod
                 U fmodf
                 U fopen
                 U fork
                 U __fprintf_chk
                 U fputc
                 U fputs
                 U fread
                 U __fread_chk
                 U free
                 U fseeko
                 U fwrite
                 U __fxstat
                 U GDALAllRegister
                 U GDALClose
                 U GDALComputeRasterMinMax
                 U GDALComputeRasterStatistics
                 U GDALCreate
                 U GDALCreateColorTable
                 U GDALCreateCopy
                 U GDALDatasetCreateLayer
                 U GDALDatasetGetLayer
                 U GDALDEMProcessing
                 U GDALDEMProcessingOptionsFree
                 U GDALDEMProcessingOptionsNew
                 U GDALDeregisterDriver
                 U GDALDestroyColorTable
                 U GDALDestroyDriverManager
                 U GDALDummyProgress
                 U GDALGetColorEntryAsRGB
                 U GDALGetColorEntryCount
                 U GDALGetColorInterpretationName
                 U GDALGetDatasetDriver
                 U GDALGetDataTypeName
                 U GDALGetDataTypeSize
                 U GDALGetDriver
                 U GDALGetDriverByName
                 U GDALGetDriverCount
                 U GDALGetDriverLongName
                 U GDALGetDriverShortName
                 U GDALGetGeoTransform
                 U GDALGetMetadata
                 U GDALGetMetadataItem
                 U GDALGetProjectionRef
                 U GDALGetRasterBand
                 U GDALGetRasterBandXSize
                 U GDALGetRasterBandYSize
                 U GDALGetRasterColorInterpretation
                 U GDALGetRasterColorTable
                 U GDALGetRasterCount
                 U GDALGetRasterDataType
                 U GDALGetRasterMaximum
                 U GDALGetRasterMinimum
                 U GDALGetRasterNoDataValue
                 U GDALGetRasterOffset
                 U GDALGetRasterScale
                 U GDALGetRasterXSize
                 U GDALGetRasterYSize
                 U GDALGrid
                 U GDALGridOptionsFree
                 U GDALGridOptionsNew
                 U GDALInfo
                 U GDALInfoOptionsFree
                 U GDALInfoOptionsNew
                 U GDALOpen
                 U GDALOpenEx
                 U GDALRasterIO
                 U GDALRasterize
                 U GDALRasterizeOptionsFree
                 U GDALRasterizeOptionsNew
                 U GDALReadWorldFile
                 U GDALSetColorEntry
                 U GDALSetGeoTransform
                 U GDALSetMetadataItem
                 U GDALSetProjection
                 U GDALSetRasterColorTable
                 U GDALSetRasterNoDataValue
                 U GDALTranslate
                 U GDALTranslateOptionsFree
                 U GDALTranslateOptionsNew
                 U GDALWarp
                 U GDALWarpAppOptionsFree
                 U GDALWarpAppOptionsNew
                 U GEOSBuffer_r
                 U GEOSCoordSeq_create_r
                 U GEOSCoordSeq_getX_r
                 U GEOSCoordSeq_getY_r
                 U GEOSCoordSeq_setX_r
                 U GEOSCoordSeq_setY_r
                 U GEOSGeom_createLinearRing_r
                 U GEOSGeom_createLineString_r
                 U GEOSGeom_createPolygon_r
                 U GEOSGeom_destroy_r
                 U GEOSGeom_getCoordSeq_r
                 U GEOSGetCentroid_r
                 U GEOSGetExteriorRing_r
                 U GEOSGetNumCoordinates_r
000000000024aad0 T geos_method_linestring
000000000024a580 T geos_method_polygon
000000000024b090 T geos_methods
0000000000078450 T get_attrib_from_string
                 U getc
                 U getcwd
                 U getenv
                 U gethostname
                 U getpid
                 U getppid
                 U getpwuid
                 U getrusage
                 U getuid
                 U glob
                 U globfree
                 w __gmon_start__
00000000000ad720 T gmt_access
0000000000127570 T gmt_add3v
0000000000157b60 T gmt_add_figure
00000000001bf070 T gmt_add_label_record
0000000000158590 T gmt_add_legend_item
000000000016afc0 T gmt_add_R_if_modern_and_true
00000000000a0e00 T gmt_add_to_record
00000000000a6ea0 T gmt_adjust_dataset
0000000000091760 T gmt_adjust_loose_wesn
0000000000120300 T gmt_adjust_refpoint
0000000000073150 T gmt_agc_read_grd
000000000006fa60 T gmt_agc_read_grd_info
0000000000073990 T gmt_agc_write_grd
0000000000075cf0 T gmt_agc_write_grd_info
00000000000a7e20 T gmt_alloc_dataset
00000000000a70b0 T gmt_alloc_segment
000000000005a7a0 T GMT_Alloc_Segment
00000000004b6680 D gmt_api_error_string
000000000012ced0 T GMT_Append_Option
0000000000120ec0 T gmt_arabic2roman
0000000000120df0 T gmt_argv2str
00000000000a0040 T gmt_ascii_format_col
00000000000a0d80 T gmt_ascii_format_one
00000000000a0870 T gmt_ascii_output_col
00000000000a0960 T gmt_ascii_output_no_text
00000000000c0070 T gmt_assemble_br
00000000000bd7b0 T gmt_assemble_shore
00000000001020a0 T gmt_assign_text
000000000017e9b0 T gmt_auto_frame_interval
000000000015aa70 T gmt_auto_offsets_for_colorbar
000000000017e9a0 T gmt_az_backaz
000000000018eda0 T gmt_azim_to_angle
00000000003156b0 T GMT_basemap
00000000001f0910 T GMT_batch
00000000001af8f0 T gmt_BB_clip_on
00000000000f68c0 T gmt_BC_init
00000000000694f0 T gmt_bcr_get_z
0000000000069190 T gmt_bcr_get_z_fast
000000000016c3b0 T gmt_begin
0000000000032370 T GMT_begin
0000000000051f60 T GMT_Begin_IO
0000000000165280 T gmt_begin_module
00000000000d41d0 T gmt_bei
00000000000d4010 T gmt_ber
000000000011a400 T gmt_best_dim_choice
00000000000d7b20 T gmt_binom_cdf
00000000000d7aa0 T gmt_binom_pdf
000000000006e830 T gmt_bit_read_grd
00000000000742d0 T gmt_bit_write_grd
00000000001f42c0 T GMT_blockmean
00000000001f7230 T GMT_blockmedian
00000000001fa960 T GMT_blockmode
00000000000c28f0 T gmt_br_cleanup
00000000000a1460 T gmt_byteswap_file
000000000004e8d0 T GMT_Call_Module
000000000017e020 T gmt_cart_outside
0000000000127d30 T gmt_cart_to_geo
0000000000127fc0 T gmt_cart_to_polar
00000000000a0ee0 T gmt_cat_to_record
000000000006c670 T gmt_cdf_grd_info
000000000006d160 T gmt_cdf_read_grd
000000000006cf80 T gmt_cdf_read_grd_info
000000000006d010 T gmt_cdf_update_grd_info
000000000006d550 T gmt_cdf_write_grd
000000000006d0c0 T gmt_cdf_write_grd_info
00000000001200d0 T gmt_centroid_area
0000000000094070 T gmt_change_grdreg
000000000005e380 T GMT_Change_Layout
00000000000e5b70 T gmt_char_count
00000000000da370 T gmt_chebyshev
000000000013c940 T gmt_check_binary_io
0000000000122d70 T gmt_check_executable
000000000014ab00 T gmt_check_filearg
0000000000124800 T gmt_check_language
0000000000139e40 T gmt_check_region
0000000000149450 T gmt_check_scalingopt
00000000000a2f80 T gmt_check_z_io
00000000000d8d00 T gmt_chi2
00000000000d8d30 T gmt_chi2crit
00000000000d81a0 T gmt_chi2_pdf
000000000012b1f0 T gmt_chol_dcmp
000000000012b500 T gmt_chol_recover
000000000012b5f0 T gmt_chol_solv
0000000000131310 T gmt_chop
00000000001312f0 T gmt_chop_ext
0000000000031ca0 T GMT_clear
0000000000316680 T GMT_clip
0000000000184480 T gmt_clip_to_map
0000000000042120 T GMT_Close_VirtualFile
00000000003200e0 T GMT_coast
0000000000357dc0 T GMT_colorbar
00000000000fee60 T gmt_colorname2index
00000000000d66e0 T gmt_combination
000000000018c4b0 T gmt_compact_line
0000000000149db0 T gmt_conf
000000000013eaa0 T gmt_conf_US
00000000000ec1e0 T gmt_consider_current_cpt
00000000000f3580 T gmt_contlabel_free
00000000000f1c80 T gmt_contlabel_info
00000000000f1960 T gmt_contlabel_init
00000000001c0030 T gmt_contlabel_plot
0000000000109c40 T gmt_contlabel_prep
00000000001bf1e0 T gmt_contlabel_save_begin
00000000001bf480 T gmt_contlabel_save_end
00000000001048c0 T gmt_contlabel_specs
00000000003278f0 T GMT_contour
00000000000f3870 T gmt_contours
000000000014b590 T gmt_cont_syntax
00000000001a2c60 T gmt_conv_datum
000000000005c700 T GMT_Convert_Data
000000000013dfe0 T gmt_convert_units
0000000000066490 T gmt_copy
000000000008ceb0 T gmt_copy_gridheader
00000000000da540 T gmt_corrcoeff
00000000000da6a0 T gmt_corrcoeff_f
000000000015af40 T gmt_count_char
00000000000ec340 T gmt_cpt_default
0000000000124190 T gmt_cpt_interval_modifier
00000000000ec420 T gmt_cpt_transparency
000000000012bad0 T GMT_Create_Args
0000000000122230 T gmt_create_array
000000000012be90 T GMT_Create_Cmd
000000000004bb00 T GMT_Create_Data
0000000000093b20 T gmt_create_grid
000000000012cfa0 T GMT_Create_Options
000000000004da00 T GMT_Create_Session
00000000000a7990 T gmt_create_table
00000000000a9360 T gmt_create_vector
0000000000127700 T gmt_cross3v
00000000001199a0 T gmt_crossing_dateline
000000000010e5d0 T gmt_crossover
0000000000119940 T gmt_crosstracks
0000000000032970 T gmt_current_name
00000000001a26a0 T gmt_datum_init
00000000000861b0 T gmt_DCW_free
0000000000085420 T gmt_DCW_list
0000000000083840 T gmt_DCW_operation
0000000000085ab0 T gmt_DCW_option
0000000000085d40 T gmt_DCW_parse
000000000008f850 T gmt_decode_grd_h_info
00000000001168f0 T gmt_decorated_line
00000000001095c0 T gmt_decorate_prep
0000000000139980 T gmt_default_error
00000000000f5a90 T gmt_delaunay
00000000000f6850 T gmt_delaunay_free
000000000012db30 T GMT_Delete_Option
000000000012bd90 T GMT_Destroy_Args
000000000012c330 T GMT_Destroy_Cmd
0000000000046950 T GMT_Destroy_Data
0000000000046de0 T GMT_Destroy_Group
000000000012b990 T GMT_Destroy_Options
00000000000444f0 T GMT_Destroy_Session
00000000000d6af0 T gmt_dilog
00000000001fe100 T GMT_dimfilter
000000000009e680 T gmt_disable_bghi_opts
0000000000186820 T gmt_distance
00000000001a3550 T gmt_dist_array
00000000001a36e0 T gmt_dist_array_2
000000000014ca50 T gmt_dist_syntax
0000000000200f50 T GMT_docs
0000000000127510 T gmt_dot2v
00000000001274e0 T gmt_dot3v
0000000000037250 T gmt_download_file
0000000000037bb0 T gmt_download_file_if_not_found
0000000000038ed0 T gmt_download_tiles
00000000001bbbb0 T gmt_draw_custom_symbol
00000000001cba60 T gmt_draw_front
00000000001c50c0 T gmt_draw_map_inset
00000000001ba080 T gmt_draw_map_panel
00000000001ba410 T gmt_draw_map_rose
00000000001ba560 T gmt_draw_map_scale
00000000001bb670 T gmt_draw_vertical_scale
00000000001b7e50 T gmt_draw_vertical_scale_old
00000000001247f0 T gmt_dry_run_only
000000000006a0d0 T gmt_dt2rdc
0000000000075cb0 T gmt_dummy_grd_info
0000000000071770 T gmt_dummy_grd_read
000000000004a5a0 T GMT_Duplicate_Data
00000000000a8690 T gmt_duplicate_dataset
0000000000093ba0 T gmt_duplicate_grid
00000000000a69d0 T gmt_duplicate_ogr_seg
000000000012da70 T GMT_Duplicate_Options
00000000000a7db0 T gmt_duplicate_segment
000000000005a790 T GMT_Duplicate_String
00000000001a2fc0 T gmt_ECEF_forward
00000000001a27e0 T gmt_ECEF_init
00000000001a3130 T gmt_ECEF_inverse
000000000009f3a0 T gmt_eliminate_lon_jumps
000000000011be00 T gmt_enable_threads
0000000000052430 T GMT_Encode_Options
0000000000157160 T gmt_end
0000000000033d60 T GMT_end
000000000004a890 T GMT_End_IO
0000000000155880 T gmt_end_module
00000000000d6d20 T gmt_erfinv
00000000000e9790 T gmt_err_func
00000000000599a0 T GMT_Error_Message
00000000004b6260 D gmt_error_string
0000000000070bb0 T gmt_esri_read_grd
0000000000070b30 T gmt_esri_read_grd_info
0000000000082ab0 T gmt_esri_writef_grd
0000000000082700 T gmt_esri_write_grd
0000000000074f50 T gmt_esri_write_grd_info
0000000000082a90 T gmt_esri_writei_grd
0000000000334820 T GMT_events
00000000000bbd50 T gmt_examine_nc_cube
000000000012cd20 T GMT_Expand_Option
00000000001c2190 T gmt_export2proj4
000000000007fc80 T gmt_export_image
0000000000123080 T gmt_extend_region
00000000000a6800 T gmt_extract_label
00000000000686e0 T GMT_Extract_Region
00000000000da150 T gmt_extreme
000000000005a720 T gmt_f77_readgrd
000000000005a030 T gmt_f77_readgrd_
000000000005a710 T gmt_f77_readgrd__
000000000005a740 T GMT_F77_READGRD
000000000005a730 T GMT_F77_READGRD_
000000000005a6e0 T gmt_f77_readgrdinfo
0000000000059e30 T gmt_f77_readgrdinfo_
000000000005a6d0 T gmt_f77_readgrdinfo__
000000000005a700 T GMT_F77_READGRDINFO
000000000005a6f0 T GMT_F77_READGRDINFO_
000000000005a760 T gmt_f77_writegrd
000000000005a390 T gmt_f77_writegrd_
000000000005a750 T gmt_f77_writegrd__
000000000005a780 T GMT_F77_WRITEGRD
000000000005a770 T GMT_F77_WRITEGRD_
00000000000d6070 T gmt_factorial
00000000000d72d0 T gmt_f_cdf
00000000000ada00 T gmt_fclose
00000000000d82b0 T gmt_Fcrit
0000000000066910 T GMT_FFT
000000000008bd10 T GMT_FFT_1D
000000000008bed0 T GMT_FFT_2D
000000000008bb40 T gmt_fft_any_wave
00000000000643c0 T GMT_FFT_Create
0000000000042cf0 T GMT_FFT_Destroy
000000000008bb30 T gmt_fft_get_wave
0000000000047b20 T GMT_FFT_Option
0000000000047fd0 T GMT_FFT_Parse
000000000008bc50 T gmt_fft_set_wave
000000000008bcc0 T GMT_FFT_Wavenumber
000000000009bff0 T gmt_fgets
0000000000039270 T GMT_figure
0000000000035f90 T gmt_file_is_a_tile
0000000000035920 T gmt_file_is_cache
0000000000035e10 T gmt_file_is_tiled_list
0000000000122d60 T gmt_filename_get
0000000000122d50 T gmt_filename_set
000000000014bc00 T gmt_fill_syntax
00000000002025a0 T GMT_filter1d
00000000001173a0 T gmt_find_macro
000000000012cc40 T GMT_Find_Option
000000000009ef10 T gmt_find_range
0000000000101ad0 T gmt_first_modifier
00000000002065b0 T GMT_fitcircle
0000000000128090 T gmt_fix_up_path
00000000000e9340 T gmt_flip_angle_d
00000000000e92e0 T gmt_flip_azim_d
0000000000114ca0 T gmt_flip_justify
00000000000b18e0 T gmt_fopen
000000000009e5a0 T gmt_format_abstime_output
000000000006bd00 T gmt_format_calendar
00000000000d7060 T gmt_f_pdf
0000000000122c10 T gmt_free_array
00000000000c1360 T gmt_free_br
00000000000abd60 T gmt_free_dataset
00000000000b54f0 T gmt_free_func
0000000000093f80 T gmt_free_grid
0000000000093d80 T gmt_free_header
000000000011a540 T gmt_free_int_selection
00000000000e8b50 T gmt_free_list
0000000000117410 T gmt_free_macros
000000000012ba40 T GMT_Free_Option
00000000000e9ff0 T gmt_freepen
000000000011b1b0 T gmt_free_refpoint
00000000000a88f0 T gmt_free_segment
00000000000c05e0 T gmt_free_shore
00000000000c38b0 T gmt_free_shore_polygons
00000000000abae0 T gmt_free_table
000000000011a9d0 T gmt_free_text_selection
00000000000a9990 T gmt_free_vector
00000000001261b0 T gmt_gauss
0000000000126930 T gmt_gaussjordan
000000000006ade0 T gmt_gcal_from_dt
000000000006a6b0 T gmt_gcal_from_rd
0000000000119fe0 T gmt_gcd_euclid
00000000001d7d20 T gmt_gdal_dem
00000000001d7e80 T gmt_gdal_grid
00000000001d7c10 T gmt_gdal_info
00000000001d8050 T gmt_gdal_rasterize
00000000000798a0 T gmt_gdalread
000000000007c8b0 T gmt_gdal_read_grd
000000000007c3a0 T gmt_gdal_read_grd_info
00000000001d8220 T gmt_gdal_translate
00000000001d8360 T gmt_gdal_warp
000000000007dbc0 T gmt_gdalwrite
0000000000080830 T gmt_gdal_write_grd
000000000006dd60 T gmt_gdal_write_grd_info
00000000001c2f60 T gmt_geo_line
00000000001c2fb0 T gmt_geo_polarcap_segment
00000000001c49a0 T gmt_geo_polygons
00000000001cb040 T gmt_geo_rectangle
0000000000127c20 T gmt_geo_to_cart
000000000017fc40 T gmt_geo_to_xy
000000000018bb40 T gmt_geo_to_xy_line
0000000000182b30 T gmt_geo_to_xy_noshift
0000000000182ba0 T gmt_geo_to_xy_noshiftscale
00000000001cae10 T gmt_geo_vector
00000000001ca360 T gmt_geo_wedge
00000000001839d0 T gmt_geoz_to_xy
0000000000041ab0 T gmt_get_api_ptr
00000000000abef0 T gmt_get_aspatial_value
00000000000c1420 T gmt_get_br_bin
00000000000de5f0 T gmt_get_cellarea
000000000009d9a0 T gmt_get_cols
0000000000042d80 T GMT_Get_Common
00000000001232a0 T gmt_get_contours_from_table
000000000004b190 T GMT_Get_Coord
0000000000155710 T gmt_get_current_figure
00000000000ebc00 T gmt_get_current_item
00000000000ad0a0 T gmt_getdatapath
00000000000a7870 T gmt_get_dataset
0000000000037dc0 T gmt_get_dataset_tiles
00000000000430f0 T GMT_Get_Default
0000000000156b70 T gmt_getdefaults
00000000000ea710 T gmt_get_distance
00000000000f2f00 T gmt_get_dist_units
0000000000143240 T gmt_get_ellipsoid
0000000000067cf0 T GMT_Get_Enum
0000000000131330 T gmt_get_ext
0000000000067db0 T GMT_Get_Family
000000000009dff0 T gmt_get_filename
0000000000068140 T GMT_Get_FilePath
0000000000103100 T gmt_getfill
00000000000ef520 T gmt_get_fill_from_key
00000000000ef450 T gmt_get_fill_from_z
00000000001031f0 T gmt_getfont
00000000000e5ba0 T gmt_getfonttype
00000000000f5050 T gmt_get_format
00000000000333d0 T gmt_get_full_name
00000000001a7f10 T gmt_get_geo_ellipse
000000000014e930 T gmt_get_graphics_id
0000000000093ac0 T gmt_get_grid
00000000000c3940 T gmt_get_gshhg_lines
0000000000041260 T gmt_get_header
00000000000ea4c0 T gmt_getinc
00000000000ea050 T gmt_getincn
00000000000eef30 T gmt_get_index
0000000000041700 T GMT_Get_Index
0000000000047180 T GMT_Get_Info
000000000011c050 T gmt_getinset
000000000011a5a0 T gmt_get_int_selection
00000000000a2160 T gmt_get_io_type
0000000000159010 T gmt_get_legend_info
00000000000d9ce0 T gmt_getmad
00000000000d9ed0 T gmt_getmad_f
0000000000067b40 T GMT_Get_Matrix
0000000000131720 T gmt_get_modifier
0000000000102110 T gmt_getmodopt
000000000004f120 T gmt_get_module_group
0000000000043ef0 T GMT_Get_ModuleInfo
0000000000143a20 T gmt_get_next_panel
000000000009e160 T gmt_get_ogr_id
000000000014a8d0 T gmt_get_option_id
00000000000febc0 T gmt_get_pair
0000000000101cc0 T gmt_get_palette
0000000000103ba0 T gmt_getpanel
00000000001001a0 T gmt_getpen
0000000000041720 T GMT_Get_Pixel
00000000000f4fa0 T gmt_get_plot_array
00000000001d5cc0 T gmt_get_postscript
00000000000e93a0 T gmt_get_prime_factors
0000000000042630 T GMT_Get_Record
000000000011b200 T gmt_get_refpoint
00000000000ff0a0 T gmt_getrgb
00000000000ef2e0 T gmt_get_rgb_from_z
00000000000ef0b0 T gmt_get_rgb_lookup
00000000000ef330 T gmt_get_rgbtxt_from_z
000000000011e8d0 T gmt_getrose
0000000000042700 T GMT_Get_Row
000000000011d2a0 T gmt_getscale
00000000000a7930 T gmt_get_segment
000000000011aa70 T gmt_get_segtext_selection
000000000009dd30 T gmt_getsharepath
00000000000c06a0 T gmt_get_shore_bin
00000000001a7a70 T gmt_get_smallcircle
00000000000420d0 T GMT_Get_Status
0000000000067c60 T GMT_Get_Strings
00000000001246d0 T gmt_get_strwithtab
00000000000a78d0 T gmt_get_table
0000000000035f30 T gmt_get_tile_id
0000000000143630 T gmt_get_time_system
00000000001398f0 T gmt_get_V
000000000013d500 T GMT_get_V
0000000000059b90 T GMT_Get_Values
0000000000067940 T GMT_Get_Vector
0000000000068b50 T GMT_Get_Version
000000000020a040 T GMT_gmt2kml
000000000020e140 T GMT_gmtconnect
0000000000212000 T GMT_gmtconvert
00000000002149c0 T GMT_gmtdefaults
0000000000247b20 T GMT_gmtdp
0000000000214fa0 T GMT_gmtget
00000000002163c0 T GMT_gmtinfo
000000000021afa0 T GMT_gmtlogo
000000000023d190 T GMT_gmtmath
0000000000130130 T GMT_gmtread
000000000025be70 T GMT_gmtregress
0000000000243320 T GMT_gmtselect
000000000025e250 T GMT_gmtset
00000000002466a0 T GMT_gmtsimplify
000000000024b2e0 T GMT_gmtspatial
0000000000211a30 T GMT_gmtstitch
000000000025ed40 T GMT_gmtvector
0000000000261f00 T GMT_gmtwhich
00000000001307c0 T GMT_gmtwrite
00000000001895b0 T gmt_graticule_path
0000000000262c50 T GMT_grd2cpt
0000000000265d30 T GMT_grd2kml
000000000026a5e0 T GMT_grd2xyz
00000000000f6f80 T gmt_grd_BC_set
000000000026e650 T GMT_grdblend
0000000000270830 T GMT_grdclip
0000000000272550 T GMT_grdcontour
00000000002792f0 T GMT_grdconvert
000000000008d940 T gmt_grd_coord
000000000027a7e0 T GMT_grdcut
00000000000945a0 T gmt_grd_detrend
000000000027dd60 T GMT_grdedit
0000000000281f40 T GMT_grdfft
00000000002836c0 T GMT_grdfill
0000000000286bf0 T GMT_grdfilter
0000000000094fc0 T gmt_grd_flip_vertical
000000000008ee20 T gmt_grd_format_decoder
00000000000830f0 T gmt_grdformats_sorted
000000000028bda0 T GMT_grdgdal
0000000000095170 T gmt_grd_get_format
000000000028c770 T GMT_grdgradient
00000000002907d0 T GMT_grdhisteq
0000000000293610 T GMT_grdimage
0000000000299760 T GMT_grdinfo
0000000000090480 T gmt_grd_info_syntax
00000000000906f0 T gmt_grd_init
000000000029efc0 T GMT_grdinterpolate
000000000008d000 T gmt_grd_is_global
000000000008d350 T gmt_grd_is_polar
00000000002a2380 T GMT_grdlandmask
00000000000de070 T gmt_grd_lmsscl
00000000000dd8a0 T gmt_grd_mad
00000000002a5f60 T GMT_grdmask
00000000002c87e0 T GMT_grdmath
00000000000dcfd0 T gmt_grd_mean
00000000000dd620 T gmt_grd_median
0000000000094200 T gmt_grd_minmax
00000000002ceed0 T GMT_grdmix
00000000000dddc0 T gmt_grd_mode
000000000008dd10 T gmt_grd_mux_demux
0000000000093560 T gmt_grd_pad_off
0000000000093760 T gmt_grd_pad_on
000000000008ea20 T gmt_grd_pad_status
00000000000939d0 T gmt_grd_pad_zero
00000000002d1950 T GMT_grdpaste
0000000000091f40 T gmt_grd_prep_io
000000000018cad0 T gmt_grd_project
00000000002d3030 T GMT_grdproject
000000000027a160 T GMT_grdreformat
000000000008f3e0 T gmt_grd_RI_verify
00000000000dd450 T gmt_grd_rms
00000000002d5660 T GMT_grdsample
0000000000090410 T gmt_grd_set_cartesian
000000000008cea0 T gmt_grd_set_datapadding
000000000008ee00 T gmt_grd_set_ij_inc
0000000000090e80 T gmt_grd_setregion
0000000000090b90 T gmt_grd_shift
00000000000dd190 T gmt_grd_std
00000000002d7540 T GMT_grdtrack
00000000002dcbd0 T GMT_grdtrend
00000000002df5c0 T GMT_grdvector
00000000002e2d30 T GMT_grdview
00000000002ee000 T GMT_grdvolume
0000000000094120 T gmt_grd_zminmax
00000000001941a0 T gmt_great_circle_dist_meter
00000000002f25e0 T GMT_greenspline
000000000014aed0 T gmt_GSHHG_syntax
00000000001311d0 T gmt_guess_sharedir
0000000000185660 T gmt_half_map_width
00000000001383a0 T gmt_handle5_plussign
00000000000599d0 T GMT_Handle_Messages
0000000000143110 T gmt_hash_init
000000000013e9e0 T gmt_hash_lookup
00000000001566d0 T gmt_hierarchy_tag
0000000000339000 T GMT_histogram
0000000000112130 T gmt_hold_contour
00000000000e5100 T gmt_hsv_to_rgb
00000000000d4890 T gmt_i0
00000000000d4a00 T gmt_i1
00000000000ef700 T gmt_illuminate
000000000033be30 T GMT_image
                 U gmtime
000000000018dd00 T gmt_img_project
0000000000097a40 T gmt_img_sanitycheck
000000000014cf20 T gmt_img_syntax
00000000001c0550 T gmt_importproj4
00000000000d4ba0 T gmt_in
000000000014bab0 T gmt_inc_syntax
00000000001386e0 T gmt_init_B
0000000000149660 T gmtinit_backwards_SQ_parsing
00000000000c2970 T gmt_init_br
000000000014a940 T gmtinit_complete_RJ
00000000001a7590 T gmt_init_distaz
00000000000e9820 T gmt_init_fill
0000000000049d00 T GMT_Init_IO
0000000000161510 T gmt_init_module
0000000000137f80 T gmtinit_parse_n_option
00000000000e9960 T gmt_init_pen
00000000001491e0 T gmt_init_scales
00000000000c19d0 T gmt_init_shore
0000000000149930 T gmt_init_time_system_structure
000000000010e3a0 T gmt_init_track
000000000013d510 T gmtinit_update_keys
00000000001446c0 T gmt_init_vector_param
00000000000424d0 T GMT_Init_VirtualFile
00000000000a2c60 T gmt_init_z_io
00000000001158e0 T gmt_inonout
000000000009bc10 T gmt_input_is_nan_proxy
00000000000423a0 T GMT_Inquire_VirtualFile
000000000009bf90 T gmt_insert_tableheader
000000000012ecd0 T GMT_inset
00000000000f0990 T gmt_intpol
00000000000ec8a0 T gmt_invert_cpt
000000000009e1c0 T gmt_is_a_blank_line
00000000000413c0 T gmt_is_an_object
0000000000101c20 T gmt_is_cpt_master
00000000000aad40 T gmt_is_float
0000000000125140 T gmt_is_gmt_end_show
0000000000124fb0 T gmt_is_gmtmodule
0000000000157af0 T gmt_is_integer
00000000001257a0 T gmt_jacobi
0000000000104710 T gmt_just_decode
00000000001046d0 T gmt_just_to_code
000000000011ae20 T gmt_just_to_lonlat
000000000011b020 T gmt_just_to_xy
00000000001045f0 T gmt_just_validate
00000000000d4d80 T gmt_k0
00000000000d4f70 T gmt_k1
00000000000d4600 T gmt_kei
00000000000d4380 T gmt_ker
00000000004cfd20 B GMT_keywords_updated
00000000002f9e90 T GMT_kml2gmt
00000000000d5150 T gmt_kn
000000000014afa0 T gmt_label_syntax
00000000000e5b20 T gmt_lab_to_rgb
00000000000e59c0 T gmt_lab_to_xyz
0000000000193bd0 T gmt_lat_swap
0000000000345bf0 T GMT_legend
0000000000158420 T gmt_legend_file
00000000000ef920 T gmtlib_akima
00000000000a9510 T gmtlib_alloc_univector
00000000000a95a0 T gmtlib_alloc_vectors
0000000000113a00 T gmtlib_annot_pos
000000000009bc70 T gmtlib_append_ogr_item
000000000009e450 T gmtlib_ascii_output_trailing_text
000000000009c1e0 T gmtlib_ascii_textinput
0000000000038c70 T gmtlib_assemble_tiles
00000000000a73b0 T gmtlib_assign_segment
00000000000a7770 T gmtlib_assign_vector
0000000000069840 T gmtlib_bcr_get_img
00000000001384e0 T gmtlib_B_is_frame
0000000000068b80 T gmtlib_blind_change_struct
00000000001721c0 T gmtlib_cartesian_dist
0000000000180470 T gmtlib_cartesian_dist_proj
00000000000ac630 T gmtlib_change_dataset
00000000000a3150 T gmtlib_clock_C_format
0000000000041650 T gmtlib_close_grd
00000000000d2d00 T gmtlib_compare_observation
00000000000973a0 T gmtlib_contract_headerpad
0000000000097400 T gmtlib_contract_pad
00000000000ea5c0 T gmtlib_conv_distance
00000000000aadc0 T gmtlib_conv_text2datarec
0000000000113810 T gmtlib_coordinate_array
00000000000eb2f0 T gmtlib_copy_palette
00000000000413e0 T gmtlib_count_objects
00000000000a7ba0 T gmtlib_create_dataset
0000000000041480 T gmtlib_create_header_item
00000000000a8dd0 T gmtlib_create_image
00000000000a99d0 T gmtlib_create_matrix
00000000000eb090 T gmtlib_create_palette
00000000001d62e0 T gmtlib_create_ps
00000000000f0050 T gmtlib_cspline
00000000000a3a20 T gmtlib_date_C_format
0000000000077530 T gmtlib_decode
00000000000f2960 T gmtlib_decorate_info
00000000000f22a0 T gmtlib_decorate_init
00000000000f2380 T gmtlib_decorate_specs
000000000009f460 T gmtlib_determine_pole
00000000000e8e90 T gmtlib_detrend
00000000001867f0 T gmtlib_distance_type
00000000000a8ed0 T gmtlib_duplicate_image
00000000000a9ac0 T gmtlib_duplicate_matrix
00000000000abda0 T gmtlib_duplicate_ogr
00000000000eb5f0 T gmtlib_duplicate_palette
00000000001d6370 T gmtlib_duplicate_ps
00000000000a9640 T gmtlib_duplicate_vector
00000000001ad090 T gmtlib_ellipsoid_name_convert
0000000000076940 T gmtlib_encode
00000000000ff6e0 T gmtlib_enforce_rgb_triplets
00000000000970c0 T gmtlib_expand_headerpad
0000000000165300 T gmtlib_explain_options
000000000008c1e0 T gmtlib_fft_cleanup
000000000008c0f0 T gmtlib_fft_initialization
00000000001555b0 T gmtlib_fig_is_ps
0000000000036180 T gmtlib_file_is_jpeg2000_tile
00000000000e8e00 T gmtlib_file_unitscale
00000000000a8b80 T gmtlib_finalize_dataset
00000000000950f0 T gmtlib_found_url_for_gdal
000000000008b150 T gmtlib_fourt_stats
00000000000eb160 T gmtlib_free_cpt_ptr
0000000000114e60 T gmtlib_free_custom_symbols
00000000000abc50 T gmtlib_free_dataset_ptr
00000000000ad040 T gmtlib_free_dir_list
0000000000093e50 T gmtlib_free_grid_ptr
00000000000a9320 T gmtlib_free_image
00000000000a90e0 T gmtlib_free_image_ptr
00000000000a9d60 T gmtlib_free_matrix
00000000000a9c40 T gmtlib_free_matrix_ptr
00000000000ab8b0 T gmtlib_free_ogr
00000000000eb630 T gmtlib_free_palette
00000000001d5880 T gmtlib_free_ps
00000000001d57a0 T gmtlib_free_ps_ptr
00000000000b5540 T gmtlib_free_tmp_arrays
00000000000a97b0 T gmtlib_free_vector_ptr
000000000009c0c0 T gmtlib_gap_detected
0000000000044130 T gmtlib_garbage_collection
000000000017d990 T gmtlib_genper_map_clip_path
0000000000183c70 T gmtlib_genper_reset
00000000000d2660 T gmtlib_geo_centroid_area
00000000000a4700 T gmtlib_geo_C_format
000000000009f8b0 T gmtlib_geo_to_dms
0000000000033660 T gmtlib_get_active_name
00000000001146e0 T gmtlib_get_annot_label
000000000010e230 T gmtlib_get_arc
0000000000113c80 T gmtlib_get_coordinate_label
0000000000068d30 T gmtlib_get_ctrl
0000000000114d80 T gmtlib_get_custom_symbol
00000000000ace50 T gmtlib_get_dir_list
00000000000acc80 T gmtlib_get_dirs
00000000001565c0 T gmtlib_get_graphics_item
000000000008eaa0 T gmtlib_get_grdtype
00000000000a2260 T gmtlib_get_io_ptr
000000000009f250 T gmtlib_get_lon_minmax
0000000000104580 T gmtlib_get_map_interval
00000000001652b0 T gmtlib_get_num_processors
000000000017e800 T gmtlib_get_point_from_r_az
000000000014aaa0 T gmtlib_get_pos_of_filename
00000000000e9870 T gmtlib_getrgb_index
0000000000038630 T gmtlib_get_tile_list
000000000006c270 T gmtlib_get_time_label
0000000000149390 T gmtlib_get_unit_number
000000000009da10 T gmtlib_getuserpath
00000000000e8bb0 T gmtlib_glob_list
000000000006a2c0 T gmtlib_gmonth_length
000000000008ed30 T gmtlib_grd_data_size
000000000008d500 T gmtlib_grd_get_units
0000000000082ad0 T gmtlib_grdio_init
000000000008da90 T gmtlib_grd_real_interleave
000000000008e3b0 T gmtlib_grd_set_units
0000000000193d10 T gmtlib_great_circle_dist_degree
0000000000187540 T gmtlib_great_circle_intersection
000000000006ad90 T gmtlib_g_ymd_is_bad
00000000000f9f40 T gmtlib_image_BC_set
0000000000094fa0 T gmtlib_init_complex
00000000000eed40 T gmtlib_init_cpt
000000000019bb90 T gmtlib_init_ellipsoid
00000000001a2580 T gmtlib_init_geodesic
0000000000117720 T gmtlib_init_rot_matrix
00000000000f17e0 T gmtlib_inplace_transpose
00000000000a2540 T gmtlib_io_banner
00000000000a1160 T gmtlib_io_binary_header
000000000017d6a0 T gmtlib_iobl
00000000000ae0b0 T gmtlib_io_init
0000000000081ff0 T gmtlib_is_agc_grid
00000000000feef0 T gmtlib_is_color
0000000000082310 T gmtlib_is_esri_grid
0000000000079790 T gmtlib_is_gdal_grid
000000000006a120 T gmtlib_is_gleap
0000000000081ec0 T gmtlib_is_mgg2_grid
0000000000033a20 T gmtlib_is_modern_name
0000000000076430 T gmtlib_is_native_grid
00000000000ba5e0 T gmtlib_is_nc_grid
000000000006adc0 T gmtlib_iso_ywd_is_bad
00000000000762f0 T gmtlib_is_ras_grid
0000000000078340 T gmtlib_is_srf_grid
000000000016d2b0 T gmtlib_itranslin
0000000000188f00 T gmtlib_latpath
000000000017dd00 T gmtlib_left_boundary
00000000001123e0 T gmtlib_linear_array
0000000000113320 T gmtlib_load_custom_annot
0000000000117790 T gmtlib_load_rot_matrix
0000000000112d10 T gmtlib_log2_array
0000000000112700 T gmtlib_log_array
0000000000188820 T gmtlib_lonpath
00000000001a3970 T gmtlib_map_latcross
00000000001a3e90 T gmtlib_map_loncross
0000000000189eb0 T gmtlib_map_path
000000000009b890 T gmtlib_maybe_abstime
0000000000041bb0 T gmtlib_module_classic_all
0000000000041210 T gmtlib_module_group
00000000000411c0 T gmtlib_module_keys
0000000000041ad0 T gmtlib_module_list_all
0000000000144630 T gmtlib_module_may_get_R_from_RP
00000000000437c0 T gmtlib_module_show_all
000000000006b120 T gmtlib_moment_interval
000000000009d880 T gmtlib_nc_get_att_text
00000000000aaee0 T gmtlib_ogr_get_type
0000000000139830 T gmtlib_parse_B_option
0000000000139e60 T gmtlib_parse_index_range
00000000000a4a00 T gmtlib_plot_C_format
0000000000113df0 T gmtlib_polar_prepare_label
0000000000113070 T gmtlib_pow_array
0000000000113f50 T gmtlib_prepare_label
000000000009c7b0 T gmtlib_process_binary_input
000000000013dc60 T gmtlib_putcmyk
000000000013d5a0 T gmtlib_putfill
000000000013dde0 T gmtlib_puthsv
000000000013ed70 T gmtlib_putparameter
000000000006a570 T gmtlib_rd_from_iywd
000000000010b5e0 T gmtlib_read_cpt
0000000000096440 T gmtlib_read_grd
0000000000095960 T gmtlib_read_grd_info
0000000000098150 T gmtlib_read_image
0000000000097ac0 T gmtlib_read_image_info
00000000001d63a0 T gmtlib_read_ps
00000000000b3ba0 T gmtlib_read_table
000000000011b100 T gmtlib_refpoint_to_panel_xy
0000000000035c20 T gmtlib_refresh_server
0000000000125300 T gmtlib_regexp_match
0000000000035ce0 T gmtlib_remote_file_is_tiled
000000000016ce90 T gmtlib_reparse_i_option
000000000016d040 T gmtlib_reparse_o_option
0000000000041910 T gmtlib_report_error
000000000014e5b0 T gmtlib_report_func
000000000009b160 T gmtlib_reset_input
000000000017dd10 T gmtlib_right_boundary
000000000010e030 T gmtlib_rotate2D
0000000000194a90 T gmtlib_scale_eqrad
000000000009baa0 T gmtlib_scanf_geodim
000000000009e530 T gmtlib_set_bin_io
00000000000eb950 T gmtlib_set_current_item_file
000000000009c150 T gmtlib_set_gap
0000000000033cc0 T gmtlib_set_KOP_strings
000000000017dec0 T gmtlib_set_oblique_pole_and_origin
000000000014e9a0 T gmtlib_setparameter
00000000000e5c70 T gmtlib_smooth_spline
0000000000069ff0 T gmtlib_splitinteger
0000000000187eb0 T gmtlib_split_line
0000000000119a90 T gmtlib_split_line_at_dateline
000000000008b490 T gmtlib_suggest_fft_dim
00000000001132e0 T gmtlib_time_array
000000000016d1f0 T gmtlib_translin
00000000000a9da0 T gmtlib_union_transpose
000000000013df50 T gmtlib_unit_lookup
0000000000043f70 T gmtlib_unregister_io
0000000000041ec0 T gmtlib_validate_id
000000000006ae90 T gmtlib_verify_time_step
000000000010a750 T gmtlib_write_cpt
00000000000b2910 T gmtlib_write_dataset
00000000000967c0 T gmtlib_write_grd
0000000000096280 T gmtlib_write_grd_info
00000000000a6e00 T gmtlib_write_newheaders
000000000009bd50 T gmtlib_write_ogr_header
00000000001d58c0 T gmtlib_write_ps
00000000000a1220 T gmtlib_write_tableheader
000000000006ad60 T gmtlib_y2_to_y4_yearfix
00000000001af160 T gmt_linearx_grid
00000000001a33a0 T gmt_line_length
000000000009b080 T gmt_list_aspatials
00000000000eb670 T gmt_list_cpt
000000000010de60 T gmt_list_custom_symbols
0000000000121140 T gmt_list_to_array
00000000000ac040 T gmt_load_aspatial_string
0000000000117030 T gmt_load_macros
00000000000e86a0 T gmt_locate_custom_symbol
000000000009e720 T gmt_lon_range_adjust
00000000000d8ca0 T gmt_lrand
0000000000127530 T gmt_mag3v
00000000002fb5b0 T GMT_makecpt
00000000000f4650 T gmt_make_filename
000000000012c3a0 T GMT_Make_Option
00000000001073b0 T gmt_make_profiles
0000000000127cb0 T gmt_make_rot_matrix
0000000000127b00 T gmt_make_rot_matrix2
00000000000b5be0 T gmt_malloc_func
0000000000159460 T gmt_manage_workflow
00000000001cdbe0 T gmt_map_basemap
00000000001af8c0 T gmt_map_clip_off
00000000001af780 T gmt_map_clip_on
000000000018f000 T gmt_map_clip_path
000000000014c440 T gmt_mapinset_syntax
00000000001906a0 T gmtmap_lat_swap_quick
0000000000183d20 T gmt_map_outside
000000000014c870 T gmt_mappanel_syntax
00000000002fd710 T GMT_mapproject
000000000014c6c0 T gmt_maprose_syntax
000000000014c5a0 T gmt_mapscale_syntax
00000000001a67a0 T gmt_map_setup
0000000000186030 T gmt_map_truncate
00000000003499a0 T GMT_mask
00000000001279e0 T gmt_matrix_matrix_add
00000000001278c0 T gmt_matrix_matrix_mult
0000000000127760 T gmt_matrix_vect_mult
0000000000127820 T gmt_matrix_vector_mult
00000000000d8f90 T gmt_mean_and_std
0000000000120180 T gmt_mean_point
00000000000d9560 T gmt_mean_weighted
00000000000d9240 T gmt_median
00000000000d9710 T gmt_median_weighted
00000000000b5640 T gmt_memory_func
0000000000120c60 T gmt_memory_use
000000000014ac40 T gmt_message
0000000000041750 T GMT_Message
0000000000072390 T gmt_mgg2_read_grd
00000000000717d0 T gmt_mgg2_read_grd_info
000000000006efa0 T gmt_mgg2_write_grd
0000000000075f60 T gmt_mgg2_write_grd_info
0000000000187410 T gmt_mindist_to_point
000000000021aca0 T GMT_minmax
00000000000fed70 T gmt_minmaxinc_verify
00000000000b5340 T gmt_mkdir
00000000000d98d0 T gmt_mode
00000000000d9ad0 T gmt_mode_f
00000000000d9720 T gmt_mode_weighted
00000000003046a0 T GMT_movie
00000000000775d0 T gmt_native_read_grd
000000000006dd70 T gmt_native_read_grd_info
0000000000076a00 T gmt_native_write_grd
0000000000075e40 T gmt_native_write_grd_info
0000000000127e80 T gmt_n_cart_to_geo
00000000000baa10 T gmt_nc_read_grd
00000000000ba9e0 T gmt_nc_read_grd_info
00000000000ba9f0 T gmt_nc_update_grd_info
00000000000bb4e0 T gmt_nc_write_grd
00000000000baa00 T gmt_nc_write_grd_info
0000000000187400 T gmt_near_a_line
00000000001873e0 T gmt_near_a_point
00000000001873f0 T gmt_near_lines
000000000030d890 T GMT_nearneighbor
0000000000120db0 T gmt_new_record
0000000000114ff0 T gmt_non_zero_winding
0000000000122c70 T gmt_no_pstext_input
00000000001276b0 T gmt_normalize2v
0000000000127650 T gmt_normalize3v
00000000000aa320 T gmt_not_numeric
00000000000d8b70 T gmt_nrand
0000000000081500 T gmt_OGRCoordinateTransformation
00000000000816c0 T gmt_ogrproj
00000000000818c0 T gmt_ogrproj_one_pt
0000000000081920 T gmt_ogrread
000000000004cfa0 T GMT_Open_VirtualFile
000000000011a1b0 T gmt_optimal_dim_for_surface
0000000000043460 T GMT_Option
0000000000121300 T gmt_parse_array
000000000012dbe0 T GMT_Parse_Common
0000000000167370 T gmt_parse_common_options
000000000013b7c0 T gmt_parse_d_option
000000000013cad0 T gmt_parse_g_option
000000000014bbb0 T gmt_parse_inc_option
00000000000ec4b0 T gmt_parse_inv_cpt
000000000013b940 T gmt_parse_i_option
000000000013c2b0 T gmt_parse_j_option
000000000013c700 T gmt_parse_model
000000000013c380 T gmt_parse_o_option
0000000000139d00 T gmt_parse_region_extender
000000000015af70 T gmt_parse_R_option
00000000000a5f00 T gmt_parse_segment_header
00000000000a5e20 T gmt_parse_segment_item
000000000013c710 T gmt_parse_segmentize
00000000001459e0 T gmt_parse_symbol_option
0000000000144a20 T gmt_parse_vector
00000000000a1f10 T gmt_parse_z_io
000000000014bd70 T gmt_pen_syntax
00000000000d6270 T gmt_permutation
0000000000142d00 T gmt_pickdefaults
00000000001247b0 T gmt_place_var
00000000001ccd50 T gmt_plane_perspective
00000000000d5210 T gmt_plm
00000000000d5400 T gmt_plm_bar
00000000000d58f0 T gmt_plm_bar_all
0000000000370c80 T GMT_plot
0000000000379d00 T GMT_plot3d
00000000001c29a0 T gmt_plotcanvas
00000000001d5c30 T gmtplot_copy_ps
00000000001d5d20 T gmt_plotend
00000000001ca300 T gmt_plot_geo_ellipse
00000000001d10c0 T gmt_plotinit
00000000001ad850 T gmt_plot_line
00000000000d8f40 T gmt_poisson_cdf
00000000000d8eb0 T gmt_poissonpdf
000000000011fe50 T gmt_pol_area
0000000000127f60 T gmt_polar_to_cart
0000000000116a00 T gmt_polygon_centroid
00000000000ac160 T gmt_polygon_is_hole
0000000000114ee0 T gmt_polygon_is_open
0000000000120100 T gmt_polygon_orientation
00000000000f4480 T gmt_prepare_contour
0000000000116c40 T gmt_prep_nodesearch
00000000000c31a0 T gmt_prep_shore_polygons
00000000000b5870 T gmt_prep_tmp_arrays
00000000000818e0 T gmt_proj4_fwd
0000000000081900 T gmt_proj4_inv
00000000003101b0 T GMT_project
000000000018c720 T gmt_project_init
000000000016e250 T gmtproj_left_eckert4
000000000016e390 T gmtproj_left_eckert6
000000000016e880 T gmtproj_left_polyconic
0000000000177990 T gmtproj_left_robinson
000000000016e470 T gmtproj_left_sinusoidal
000000000017fcc0 T gmtproj_left_winkel
000000000016e2f0 T gmtproj_right_eckert4
000000000016e400 T gmtproj_right_eckert6
000000000016e8f0 T gmtproj_right_polyconic
0000000000177a30 T gmtproj_right_robinson
000000000016e4d0 T gmtproj_right_sinusoidal
000000000017fdf0 T gmtproj_right_winkel
00000000001a4400 T gmt_proj_setup
0000000000331f10 T GMT_ps2raster
00000000001d55f0 T gmt_ps_append
0000000000314890 T GMT_psbasemap
00000000003159c0 T GMT_psclip
00000000003170f0 T GMT_pscoast
0000000000320c60 T GMT_pscontour
0000000000328b90 T GMT_psconvert
00000000003324b0 T GMT_psevents
0000000000334f90 T GMT_pshistogram
00000000000dabe0 T gmt_psi
00000000003395c0 T GMT_psimage
000000000033c900 T GMT_pslegend
0000000000346970 T GMT_psmask
0000000000349f90 T GMT_psrose
0000000000351140 T GMT_psscale
0000000000358eb0 T GMT_pssolar
000000000035aa40 T GMT_psternary
000000000035dbf0 T GMT_pstext
0000000000363ad0 T GMT_pswiggle
0000000000366a40 T GMT_psxy
0000000000371c20 T GMT_psxyz
000000000013d890 T gmt_putcolor
0000000000156b50 T gmt_putdefaults
00000000000e9ed0 T gmt_putfont
00000000000679d0 T GMT_Put_Matrix
00000000000e99a0 T gmt_putpen
00000000000416f0 T GMT_Put_Record
000000000013dae0 T gmt_putrgb
0000000000042a40 T GMT_Put_Row
0000000000067bb0 T GMT_Put_Strings
0000000000119fa0 T gmt_putusername
00000000000675a0 T GMT_Put_Vector
00000000000dbc90 T gmt_PvQv
000000000009ecf0 T gmt_quad_add
000000000009ee00 T gmt_quad_finalize
000000000009ecb0 T gmt_quad_init
000000000009ec40 T gmt_quad_reset
00000000000da820 T gmt_quantile
00000000000da9f0 T gmt_quantile_f
00000000000d9620 T gmt_quantile_weighted
00000000000b54a0 T gmt_quit_bad_record
00000000000d8990 T gmt_rand
0000000000071d00 T gmt_ras_read_grd
0000000000071b00 T gmt_ras_read_grd_info
0000000000097450 T gmt_raster_type
000000000006e310 T gmt_ras_write_grd
000000000006e180 T gmt_ras_write_grd_info
0000000000069fb0 T gmt_rdc2dt
000000000006a310 T gmt_rd_from_gymd
0000000000060ee0 T GMT_Read_Data
0000000000062f20 T GMT_Read_Group
0000000000092960 T gmt_read_img
00000000000e89a0 T gmt_read_list
0000000000042250 T GMT_Read_VirtualFile
000000000009e6d0 T gmt_reenable_bghi_opts
000000000014c170 T gmt_refpoint_syntax
0000000000048ff0 T GMT_Register_IO
0000000000157ad0 T gmt_reload_history
0000000000156cb0 T gmt_reload_settings
0000000000035850 T gmt_remote_dataset_id
0000000000035bb0 T gmt_remote_no_extension
0000000000035810 T gmtremote_wind_to_file
000000000014e740 T gmt_remove_dir
00000000000ad970 T gmt_remove_file
00000000000adb80 T gmt_rename_file
00000000000adf60 T gmt_replace_backslash_in_path
0000000000043b40 T GMT_Report
000000000016cdd0 T gmt_report_usage
00000000001198e0 T gmt_resample_data
0000000000129ab0 T gmt_resample_path
0000000000138360 T gmt_reset_history
00000000000b5cf0 T gmt_reset_meminc
000000000014c0b0 T gmt_rgb_syntax
00000000000e4f80 T gmt_rgb_to_hsv
00000000000e5ad0 T gmt_rgb_to_lab
00000000000e54f0 T gmt_rgb_to_xyz
00000000000eaa20 T gmt_RI_prepare
000000000034ef10 T GMT_rose
00000000000fe9b0 T gmt_row_col_out_of_bounds
0000000000130fc0 T GMT_runtime_bindir
0000000000130e60 T gmt_runtime_libdir
000000000037a140 T GMT_sample1d
00000000000ecb40 T gmt_sample_cpt
00000000000ebb10 T gmt_save_current_cpt
0000000000092590 T gmt_scale_and_offset_f
00000000000ec6d0 T gmt_scale_cpt
00000000000a5190 T gmt_scanf
00000000000aa500 T gmt_scanf_arg
000000000009b3d0 T gmt_scanf_argtime
000000000009b190 T gmt_scanf_float
00000000001249a0 T gmt_script_is_classic
00000000001a87b0 T gmt_segment_BB_outside_map_BB
00000000001187f0 T gmt_segmentize_data
000000000014cd80 T gmt_segmentize_syntax
0000000000068000 T GMT_Set_AllocMode
00000000000ae070 T gmt_set_cartesian
00000000000a29a0 T gmt_set_cols
00000000000adfa0 T gmt_set_column
000000000005e0c0 T GMT_Set_Columns
0000000000124680 T gmt_set_comment
00000000000476d0 T GMT_Set_Comment
0000000000143870 T gmt_set_current_panel
00000000000ac430 T gmt_set_dataset_minmax
00000000001a2840 T gmt_set_datum
0000000000048c60 T GMT_Set_Default
0000000000154f90 T gmt_setdefaults
0000000000124440 T gmt_set_dvalue
00000000001af9b0 T gmt_setfill
00000000001b2250 T gmt_setfont
00000000000ae010 T gmt_set_geographic
00000000000451a0 T GMT_Set_Geometry
00000000000905f0 T gmt_set_grddim
0000000000090570 T gmt_set_grdinc
0000000000051540 T GMT_Set_Index
00000000000f5870 T gmt_set_inside_mode
00000000000e5c60 T gmt_set_interpolate_mode
000000000011a620 T gmt_set_int_selection
00000000001243c0 T gmt_set_ivalue
0000000000139910 T gmt_set_length_unit
00000000000bd1b0 T gmt_set_levels
0000000000128050 T gmt_set_line_resampling
00000000001495c0 T gmt_set_measure_unit
00000000000b5ce0 T gmt_set_meminc
000000000016ae20 T gmt_set_missing_options
0000000000093fc0 T gmt_set_outgrid
000000000014aa80 T gmt_set_pad
00000000001afae0 T gmt_setpen
00000000001d1000 T gmt_set_psfilename
000000000011bc50 T gmt_set_refpoint
0000000000036550 T gmt_set_remote_and_local_filenames
00000000000bd3d0 T gmt_set_resolution
000000000008d3d0 T gmt_set_R_from_grd
0000000000124610 T gmt_set_script
000000000009c1d0 T gmt_set_segmentheader
00000000000a5cc0 T gmt_set_seg_minmax
000000000009f7e0 T gmt_set_seg_polar
000000000009c710 T gmt_set_tableheader
00000000000ac190 T gmt_set_tbl_minmax
000000000011ab70 T gmt_set_text_selection
00000000001244f0 T gmt_set_tvalue
0000000000035990 T gmt_set_unspecified_remote_registration
000000000013d4e0 T gmt_set_V
00000000001242c0 T gmt_set_value
00000000000a6a90 T gmt_set_xycolnames
00000000000fea40 T gmt_set_xy_domain
00000000000a2f10 T gmt_set_z_io
00000000000bd630 T gmt_shore_adjust_res
00000000000c1860 T gmt_shore_cleanup
00000000000c4010 T gmt_shore_level_at_point
0000000000043e30 T GMT_Show_ModuleInfo
00000000000439e0 T gmt_show_name_and_purpose
00000000000d3e20 T gmt_sig_f
00000000000e6f50 T gmt_signum
00000000000d6020 T gmt_sinc
000000000009e210 T gmt_skip_output
000000000009c0b0 T gmt_skip_xy_duplicates
00000000001242b0 T gmt_sleep
00000000001070b0 T gmt_smart_justify
000000000035a460 T GMT_solar
0000000000126e90 T gmt_solve_svd
00000000000e95b0 T gmt_sort_array
00000000000e9710 T gmt_sort_order
000000000037cfa0 T GMT_spectrum1d
000000000037fb50 T GMT_sph2grd
00000000003818b0 T GMT_sphdistance
00000000003840a0 T GMT_sphinterpolate
0000000000385830 T GMT_sphtriangulate
000000000017e1a0 T gmt_split_poly_at_dateline
0000000000388740 T GMT_splitxyz
00000000000f4a70 T gmt_sprintf_float
0000000000077c80 T gmt_srf_read_grd
0000000000072c70 T gmt_srf_read_grd_info
0000000000076fa0 T gmt_srf_write_grd
00000000000748c0 T gmt_srf_write_grd_info
00000000000cee00 T gmt_ssrfpack_grid
00000000000d90d0 T gmt_std_weighted
0000000000131280 T gmt_strdup_noquote
00000000000e9770 T GMT_strerror
00000000000ec540 T gmt_stretch_cpt
00000000000cedf0 T gmt_stripack_areas
00000000000cbe20 T gmt_stripack_lists
00000000001c2ab0 T gmt_strip_layer
0000000000131490 T gmt_strlcmp
0000000000131420 T gmt_strlshift
000000000009dfc0 T gmt_strncpy
0000000000131990 T gmt_strrep
0000000000131460 T gmt_strrepc
0000000000101a70 T gmt_str_setcase
0000000000131350 T gmt_strstrip
00000000001314e0 T gmt_strtok
0000000000131630 T gmt_strtok_m
00000000000fedf0 T gmt_str_tolower
0000000000101a00 T gmt_str_toupper
00000000001275e0 T gmt_sub3v
0000000000039fe0 T GMT_subplot
0000000000143d00 T gmt_subplot_gaps
0000000000143eb0 T gmt_subplot_info
0000000000117500 T gmt_substitute_macros
0000000000391350 T GMT_surface
0000000000126d20 T gmt_svdcmp
00000000000f37c0 T gmt_symbol_free
000000000014cfa0 T gmt_syntax
00000000000d7840 T gmt_t_cdf
00000000000d7cd0 T gmt_tcrit
000000000035c970 T GMT_ternary
0000000000362e30 T GMT_text
00000000001bf530 T gmt_textpath_init
00000000000b5cd0 T gmt_this_alloc_level
0000000000124ad0 T gmt_token_check
00000000000d76e0 T gmt_t_pdf
000000000017dd20 T gmt_translate_point
0000000000395e70 T GMT_trend1d
0000000000399900 T GMT_trend2d
000000000039c270 T GMT_triangulate
0000000000120510 T gmt_trim_line
0000000000120490 T gmt_trim_requested
00000000000ee0c0 T gmt_truncate_cpt
00000000001583b0 T gmt_truncate_file
000000000008ecf0 T gmt_update_grd_info
000000000012cc90 T GMT_Update_Option
0000000000183a60 T gmt_UTMzone_to_wesn
00000000000eb740 T gmt_validate_cpt_parameters
000000000011beb0 T gmt_validate_modifiers
000000000014cb00 T gmt_vector_syntax
00000000001071a0 T gmt_verify_expectations
00000000001cd250 T gmt_vertical_axis
00000000000f67e0 T gmt_voronoi
00000000000d7a00 T gmt_weibull_cdf
00000000000d7a50 T gmt_weibull_crit
00000000000d7950 T gmt_weibull_pdf
0000000000183d70 T gmt_wesn_search
0000000000365c40 T GMT_wiggle
0000000000064430 T GMT_Write_Data
0000000000123800 T gmt_write_glue_function
00000000000bc060 T gmt_write_nc_cube
00000000000a0f70 T gmt_write_segmentheader
000000000010e540 T gmt_x_free
00000000000feb40 T gmt_x_is_outside
00000000000fe940 T gmt_x_out_of_bounds
000000000017fb20 T gmt_x_to_xx
00000000001b2320 T gmt_xy_axis
00000000001b4170 T gmt_xy_axis2
0000000000182be0 T gmt_xy_to_geo
0000000000183950 T gmt_xy_to_geo_noshift
0000000000183930 T gmt_xy_to_geo_noshiftscale
00000000003a0050 T GMT_xyz2grd
00000000000e5860 T gmt_xyz_to_lab
00000000000e5690 T gmt_xyz_to_rgb
0000000000183970 T gmt_xyz_to_xy
00000000000fe880 T gmt_y_out_of_bounds
000000000017fb80 T gmt_y_to_yy
00000000000d7c60 T gmt_zcrit
00000000000d7c30 T gmt_zdist
000000000009c720 T gmt_z_input
000000000009e4d0 T gmt_z_output
000000000017fbe0 T gmt_z_to_zz
                 U GOMP_parallel
00000000002659d0 T grd2kml_coarsen_grid
000000000012fe10 T gshhg_require_min_version
                 U hypot
                 U initGEOS_r
                 U __isoc99_fscanf
                 U __isoc99_sscanf
                 w _ITM_deregisterTMCloneTable
                 w _ITM_registerTMCloneTable
                 U j0
                 U j1
                 U jn
                 U kill
00000000001ddaa0 T kiss_fft
00000000001dd4a0 T kiss_fft_alloc
00000000001ddab0 T kiss_fft_cleanup
00000000001dddc0 T kiss_fftnd
00000000001ddb70 T kiss_fftnd_alloc
00000000001ddac0 T kiss_fft_next_fast_size
00000000001dda20 T kiss_fft_stride
                 U localeconv
                 U localtime
                 U log
                 U log10
                 U log10f
                 U log1p
                 U log1pf
                 U log2
                 U logf
                 U lrint
                 U lrintf
                 U malloc
0000000000189f50 T map_wesn_clip
00000000001f0510 T mbsystem_module_classic_all
00000000001f0550 T mbsystem_module_group
00000000001f0530 T mbsystem_module_keys
00000000001f04f0 T mbsystem_module_list_all
00000000001f04d0 T mbsystem_module_show_all
                 U memcpy
                 U __memcpy_chk
                 U memmove
                 U __memmove_chk
                 U memset
00000000002483d0 T mergesort
                 U mkdir
                 U mkstemp
                 U nc_close
                 U nc_create
                 U nc_def_dim
                 U nc_def_var
                 U nc_def_var_chunking
                 U nc_def_var_deflate
                 U nc_del_att
                 U nc_enddef
                 U nc_get_att_double
                 U nc_get_att_float
                 U nc_get_att_int
                 U nc_get_att_text
                 U nc_get_var1_double
                 U nc_get_var1_int
                 U nc_get_vara_double
                 U nc_get_vara_float
                 U nc_get_vara_int
                 U nc_get_vara_schar
                 U nc_get_vara_short
                 U nc_get_var_double
                 U nc_get_var_int
                 U nc_get_varm_float
                 U nc_get_var_ushort
                 U nc_inq_attlen
                 U nc_inq_dim
                 U nc_inq_dimid
                 U nc_inq_dimlen
                 U nc_inq_format
                 U nc_inq_libvers
                 U nc_inq_nvars
                 U nc_inq_type
                 U nc_inq_var_chunking
                 U nc_inq_var_deflate
                 U nc_inq_vardimid
                 U nc_inq_varid
                 U nc_inq_varname
                 U nc_inq_varndims
                 U nc_inq_vartype
                 U nc_open
                 U nc_put_att_double
                 U nc_put_att_float
                 U nc_put_att_int
                 U nc_put_att_text
                 U nc_put_vara_float
                 U nc_put_vara_long
                 U nc_put_var_double
                 U nc_put_var_int
                 U nc_put_varm_float
                 U nc_redef
                 U nc_rename_att
                 U nc_set_chunk_cache
                 U nc_set_fill
                 U nc_strerror
                 U New_PSL_Ctrl
                 U OCTDestroyCoordinateTransformation
                 U OCTNewCoordinateTransformation
                 U OCTTransform
                 U OGRCleanupAll
                 U OGR_DS_GetLayerCount
                 U OGR_F_Create
                 U OGR_F_Destroy
                 U OGR_FD_GetFieldCount
                 U OGR_FD_GetFieldDefn
                 U OGR_FD_GetName
                 U OGR_F_GetFieldAsString
                 U OGR_F_GetFieldIndex
                 U OGR_F_GetGeometryRef
                 U OGR_Fld_Create
                 U OGR_Fld_Destroy
                 U OGR_Fld_GetNameRef
                 U OGR_Fld_GetType
                 U OGR_Fld_SetWidth
                 U OGR_F_SetFieldString
                 U OGR_F_SetGeometry
                 U OGR_G_AddGeometryDirectly
                 U OGR_G_AddPoint
                 U OGR_G_CreateGeometry
                 U OGR_G_DestroyGeometry
                 U OGR_G_GetCoordinateDimension
                 U OGR_G_GetGeometryCount
                 U OGR_G_GetGeometryRef
                 U OGR_G_GetGeometryType
                 U OGR_G_GetPointCount
                 U OGR_G_GetX
                 U OGR_G_GetY
                 U OGR_G_GetZ
                 U OGR_G_SetPoint
                 U OGR_GT_Flatten
                 U OGR_L_CreateFeature
                 U OGR_L_CreateField
                 U OGR_L_GetExtent
                 U OGR_L_GetFeatureCount
                 U OGR_L_GetLayerDefn
                 U OGR_L_GetNextFeature
                 U OGR_L_GetSpatialRef
                 U OGR_L_ResetReading
                 U OGR_L_SetSpatialFilter
                 U omp_get_num_threads
                 U omp_get_thread_num
                 U omp_set_dynamic
                 U omp_set_num_threads
                 U opendir
                 U OSRCloneGeogCS
                 U OSRDestroySpatialReference
                 U OSRExportToPrettyWkt
                 U OSRExportToProj4
                 U OSRExportToWkt
                 U OSRImportFromEPSG
                 U OSRImportFromProj4
                 U OSRImportFromWkt
                 U OSRNewSpatialReference
                 U OSRSetAxisMappingStrategy
                 U OSRSetFromUserInput
                 U OSRSetPROJSearchPaths
00000000001d7bf0 T out_name
                 U pclose
                 U pcre_compile
                 U pcre_exec
                 U pcre_free
                 U perror
                 U pipe
00000000001ae790 T plot_timex_grid
                 U popen
                 U pow
                 U __printf_chk
                 U PSL_beginclipping
                 U PSL_beginlayer
                 U PSL_beginplot
                 U PSL_beginsession
                 U PSL_command
                 U PSL_comment
                 U PSL_copy
                 U PSL_defcolor
                 U PSL_defpen
                 U PSL_deftextdim
                 U PSL_defunits
                 U PSL_endclipping
                 U PSL_endlayer
                 U PSL_endplot
                 U PSL_endsession
                 U PSL_fclose
                 U PSL_fopen
                 U PSL_getplot
                 U psl_gray_encode
                 U PSL_loadeps
                 U PSL_makecolor
                 U PSL_makefont
                 U PSL_makefontsize
                 U PSL_makepen
                 U PSL_plotarc
                 U PSL_plotbitimage
                 U PSL_plotbox
                 U PSL_plotcolorimage
                 U PSL_plotcurve
                 U PSL_plotepsimage
                 U PSL_plotline
                 U PSL_plotparagraph
                 U PSL_plotparagraphbox
                 U PSL_plotpoint
                 U PSL_plotpolygon
                 U PSL_plotsegment
                 U PSL_plotsymbol
                 U PSL_plottext
                 U PSL_plottextbox
                 U PSL_plottextline
                 U PSL_setcolor
                 U PSL_setcurrentpoint
                 U PSL_setdash
                 U PSL_setdefaults
                 U PSL_setexec
                 U PSL_setfill
                 U PSL_setfont
                 U PSL_setformat
                 U PSL_setimage
                 U psl_set_int_array
                 U PSL_setlinecap
                 U PSL_setlinejoin
                 U PSL_setlinewidth
                 U PSL_setmiterlimit
                 U PSL_setorigin
                 U PSL_setparagraph
                 U PSL_settextmode
                 U PSL_settransparency
                 U PSL_settransparencymode
                 U psl_set_txt_array
                 U psl_vector_v4
                 U putc
                 U putchar
                 U puts
                 U qsort
                 U qsort_r
                 U rand
                 U read
                 U readdir
                 U readlink
                 U realloc
                 U realpath
                 U remainder
                 U remove
                 U rename
                 U rewind
                 U rmdir
                 U setenv
                 U setlocale
                 U sigaction
                 U sigemptyset
0000000000031240 T sig_handler
                 U sin
                 U sincos
                 U sinf
                 U sinh
                 U sinhf
                 U snprintf
                 U __snprintf_chk
                 U __sprintf_chk
                 U sqrt
                 U sqrtf
                 U srand
                 U __stack_chk_fail
                 U stderr
                 U stdin
                 U stdout
                 U stpcpy
                 U __stpcpy_chk
                 U strcasecmp
                 U strcat
                 U __strcat_chk
                 U strchr
                 U strcmp
                 U strcpy
                 U __strcpy_chk
                 U strcspn
                 U strdup
                 U strerror
00000000001318f0 T stresep
                 U strftime
                 U strlen
                 U strncasecmp
                 U strncat
                 U __strncat_chk
                 U strncmp
                 U strncpy
                 U __strncpy_chk
                 U strndup
                 U strpbrk
                 U strrchr
                 U strsep
0000000000131850 T strsepz
0000000000131880 T strsepzp
                 U strspn
                 U strstr
                 U strtod
                 U strtof
                 U strtok_r
                 U strtol
0000000000039db0 T subplot_wipe_history_and_settings
                 U sysconf
                 U sys_siglist
                 U system
                 U tan
                 U tanf
                 U tanh
                 U tanhf
                 U time
00000000001ec6c0 T triangulate
                 U truncate
                 U ungetc
                 U unlink
                 U usleep
                 U utimes
                 U VSIFree
                 U __vsnprintf_chk
                 U waitpid
                 U write
                 U __xpg_basename
                 U __xstat
                 U y0
                 U y1
                 U yn
Process(`nm -D /usr/lib/libgmt.so`, ProcessExited(0))


I also check nm -D /usr/lib/libgdal.so, I think in different cases, the results are the same.
But this kind of information is beyond my knowledge....

I have tried to solve this problem all this afternoon...
libgdal.so.26: undefined symbol: sqlite3_column_table_name seems very common (a lot of results when google it). At this point I think it may be related to the different versions of gdal. But Archlinux only provides 3.0 and if I compile from source the problem still exist.

In my situation, all data is stored in sqlite database, so I need to use SQLite to interact with them. I have changed all PyPlot code to GMT, so I also need to use GMT. And all these work fine on MacBook.
But laptop is not a good place for computing. After some intense computation, my MacBook broke last month, and all data was lost... The only things left are some pieces of code that I have pushed to github. So, recently, I'm trying to recover my work and move all compute-intensive code to desktop.

Is there a way to fix the so files in GMT or compile the code when import (as it works when I only using GMT)

@joa-quim
Copy link
Member

Actually it was not this output that I was expecting but rather the linux equivalent of Mac's otool -L. The problem must be between gdal.so and sqlite.so. Why is that so is question. I confess that I don't like the Julia (and Python btw) policy of creating parallel universes with their own lib versions. I'm convicted defender of using the system libraries. I'm almost sure this problem would not be occurring if SQite.jl used the installed sqlite lib. Here I'm assuming that your GDAL is built with SQlite support, is it right?

@joa-quim
Copy link
Member

How many of sqlite .so libs do you have? If you run the same -nm command on them (doesn't need to be from Julia) you will probably find that they (or the one that is being found by gdal) does not have that sqlite3_column_table_name symbol. Mine, on Windows does have it.

@joa-quim
Copy link
Member

The command I meant was ldd`, not nm`` sorry.

@htyeim
Copy link
Contributor Author

htyeim commented Jul 14, 2020

All the packages were installed using pacman so they are from official source (I think). GMT was installed from https://aur.archlinux.org/packages/gmt6/ (git clone;cd ;makepkg -si). I have check SQLite directory in ~/.julia/packages/SQLite/KwDwo/deps/, there is no libsqlite3.so, so the the package probably uses the so file in /usr/lib

ls -al /usr/lib |grep sqlite
lrwxrwxrwx   1 root root         19 Jun 19 03:10 libsqlite3.so -> libsqlite3.so.0.8.6
lrwxrwxrwx   1 root root         19 Jun 19 03:10 libsqlite3.so.0 -> libsqlite3.so.0.8.6
-rwxr-xr-x   1 root root    1285520 Jun 19 03:10 libsqlite3.so.0.8.6

It's too complex... I will try another Linux distribution today...


Other related information:

ldd /usr/lib/libgmt.so 
        linux-vdso.so.1 (0x00007ffd775bc000)
        libnetcdf.so.18 => /usr/lib/libnetcdf.so.18 (0x00007fcd12d4f000)
        libcurl.so.4 => /usr/lib/libcurl.so.4 (0x00007fcd12cbf000)
        libgdal.so.26 => /usr/lib/libgdal.so.26 (0x00007fcd11800000)
        libgeos_c.so.1 => /usr/lib/libgeos_c.so.1 (0x00007fcd117be000)
        libpcre.so.1 => /usr/lib/libpcre.so.1 (0x00007fcd1174c000)
        libfftw3f.so.3 => /usr/lib/libfftw3f.so.3 (0x00007fcd114fe000)
        libfftw3f_threads.so.3 => /usr/lib/libfftw3f_threads.so.3 (0x00007fcd114f3000)
        liblapack.so.3 => /usr/lib/liblapack.so.3 (0x00007fcd10e30000)
        libopenblas.so.3 => /usr/lib/libopenblas.so.3 (0x00007fcd0fc6a000)
        libpostscriptlight.so.6 => /usr/lib/libpostscriptlight.so.6 (0x00007fcd0fc20000)
        libm.so.6 => /usr/lib/libm.so.6 (0x00007fcd0fadb000)
        libdl.so.2 => /usr/lib/libdl.so.2 (0x00007fcd0fad5000)
        libgomp.so.1 => /usr/lib/libgomp.so.1 (0x00007fcd0fa92000)
        libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007fcd0fa70000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007fcd0f8a9000)
        libhdf5_hl.so.200 => /usr/lib/libhdf5_hl.so.200 (0x00007fcd0f884000)
        libhdf5.so.200 => /usr/lib/libhdf5.so.200 (0x00007fcd0f49e000)
        libnghttp2.so.14 => /usr/lib/libnghttp2.so.14 (0x00007fcd0f472000)
        libidn2.so.0 => /usr/lib/libidn2.so.0 (0x00007fcd0f44f000)
        libssh2.so.1 => /usr/lib/libssh2.so.1 (0x00007fcd0f40f000)
        libpsl.so.5 => /usr/lib/libpsl.so.5 (0x00007fcd0f3fc000)
        libssl.so.1.1 => /usr/lib/libssl.so.1.1 (0x00007fcd0f36c000)
        libcrypto.so.1.1 => /usr/lib/libcrypto.so.1.1 (0x00007fcd0f08f000)
        libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00007fcd0f03a000)
        libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00007fcd0ef52000)
        libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00007fcd0ef21000)
        libcom_err.so.2 => /usr/lib/libcom_err.so.2 (0x00007fcd0ef1b000)
        libz.so.1 => /usr/lib/libz.so.1 (0x00007fcd0ef01000)
        libpoppler.so.101 => /usr/lib/libpoppler.so.101 (0x00007fcd0eb9f000)
        libjson-c.so.5 => /usr/lib/libjson-c.so.5 (0x00007fcd0eb8d000)
        libfreexl.so.1 => /usr/lib/libfreexl.so.1 (0x00007fcd0eb7f000)
        libexpat.so.1 => /usr/lib/libexpat.so.1 (0x00007fcd0eb4f000)
        libxerces-c-3.2.so => /usr/lib/libxerces-c-3.2.so (0x00007fcd0e7ae000)
        libopenjp2.so.7 => /usr/lib/libopenjp2.so.7 (0x00007fcd0e753000)
        libgif.so.7 => /usr/lib/libgif.so.7 (0x00007fcd0e748000)
        libjpeg.so.8 => /usr/lib/libjpeg.so.8 (0x00007fcd0e6b2000)
        libgeotiff.so.5 => /usr/lib/libgeotiff.so.5 (0x00007fcd0e67a000)
        libtiff.so.5 => /usr/lib/libtiff.so.5 (0x00007fcd0e5ea000)
        libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007fcd0e5b3000)
        libcfitsio.so.9 => /usr/lib/libcfitsio.so.9 (0x00007fcd0e297000)
        libpq.so.5 => /usr/lib/libpq.so.5 (0x00007fcd0e248000)
        libzstd.so.1 => /usr/lib/libzstd.so.1 (0x00007fcd0e176000)
        librt.so.1 => /usr/lib/librt.so.1 (0x00007fcd0e169000)
        libspatialite.so.7 => /usr/lib/libspatialite.so.7 (0x00007fcd0dbde000)
        libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0x00007fcd0daa3000)
        libproj.so.15 => /usr/lib/libproj.so.15 (0x00007fcd0d7b4000)
        libxml2.so.2 => /usr/lib/libxml2.so.2 (0x00007fcd0d64e000)
        liblzma.so.5 => /usr/lib/liblzma.so.5 (0x00007fcd0d626000)
        libicui18n.so.67 => /usr/lib/libicui18n.so.67 (0x00007fcd0d324000)
        libicuuc.so.67 => /usr/lib/libicuuc.so.67 (0x00007fcd0d13d000)
        libicudata.so.67 => /usr/lib/libicudata.so.67 (0x00007fcd0b626000)
        libmariadb.so.3 => /usr/lib/libmariadb.so.3 (0x00007fcd0b5d7000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007fcd0b3fa000)
        /usr/lib64/ld-linux-x86-64.so.2 (0x00007fcd133e2000)
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007fcd0b3e0000)
        libgeos-3.8.0.so => /usr/lib/libgeos-3.8.0.so (0x00007fcd0b20a000)
        libgfortran.so.5 => /usr/lib/libgfortran.so.5 (0x00007fcd0af43000)
        libsz.so.2 => /usr/lib/libsz.so.2 (0x00007fcd0af3e000)
        libunistring.so.2 => /usr/lib/libunistring.so.2 (0x00007fcd0adbc000)
        libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x00007fcd0adab000)
        libkeyutils.so.1 => /usr/lib/libkeyutils.so.1 (0x00007fcd0ada4000)
        libresolv.so.2 => /usr/lib/libresolv.so.2 (0x00007fcd0ad8a000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007fcd0acb6000)
        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00007fcd0ac6b000)
        liblcms2.so.2 => /usr/lib/liblcms2.so.2 (0x00007fcd0ac0c000)
        libsmime3.so => /usr/lib/libsmime3.so (0x00007fcd0abe0000)
        libnss3.so => /usr/lib/libnss3.so (0x00007fcd0aaa8000)
        libnspr4.so => /usr/lib/libnspr4.so (0x00007fcd0aa65000)
        libnsl.so.2 => /usr/lib/libnsl.so.2 (0x00007fcd0aa4b000)
        libldap_r-2.4.so.2 => /usr/lib/libldap_r-2.4.so.2 (0x00007fcd0a9f5000)
        libquadmath.so.0 => /usr/lib/../lib/libquadmath.so.0 (0x00007fcd0a9a8000)
        libaec.so.0 => /usr/lib/libaec.so.0 (0x00007fcd0a99e000)
        libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x00007fcd0a98b000)
        libharfbuzz.so.0 => /usr/lib/libharfbuzz.so.0 (0x00007fcd0a8bc000)
        libnssutil3.so => /usr/lib/libnssutil3.so (0x00007fcd0a887000)
        libplds4.so => /usr/lib/libplds4.so (0x00007fcd0a882000)
        libplc4.so => /usr/lib/libplc4.so (0x00007fcd0a87b000)
        libtirpc.so.3 => /usr/lib/libtirpc.so.3 (0x00007fcd0a84c000)
        liblber-2.4.so.2 => /usr/lib/liblber-2.4.so.2 (0x00007fcd0a83c000)
        libsasl2.so.3 => /usr/lib/libsasl2.so.3 (0x00007fcd0a81e000)
        libgraphite2.so.3 => /usr/lib/libgraphite2.so.3 (0x00007fcd0a7f7000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007fcd0a6ce000)
ldd /usr/lib/libgdal.so
linux-vdso.so.1 (0x00007ffd74fb0000)
libcrypto.so.1.1 => /usr/lib/libcrypto.so.1.1 (0x00007fc0b9682000)
libpoppler.so.101 => /usr/lib/libpoppler.so.101 (0x00007fc0b9320000)
libjson-c.so.5 => /usr/lib/libjson-c.so.5 (0x00007fc0b930e000)
libfreexl.so.1 => /usr/lib/libfreexl.so.1 (0x00007fc0b9302000)
libgeos_c.so.1 => /usr/lib/libgeos_c.so.1 (0x00007fc0b92c0000)
libexpat.so.1 => /usr/lib/libexpat.so.1 (0x00007fc0b9290000)
libxerces-c-3.2.so => /usr/lib/libxerces-c-3.2.so (0x00007fc0b8eed000)
libopenjp2.so.7 => /usr/lib/libopenjp2.so.7 (0x00007fc0b8e92000)
libnetcdf.so.18 => /usr/lib/libnetcdf.so.18 (0x00007fc0b8d42000)
libhdf5.so.200 => /usr/lib/libhdf5.so.200 (0x00007fc0b895c000)
libgif.so.7 => /usr/lib/libgif.so.7 (0x00007fc0b8951000)
libjpeg.so.8 => /usr/lib/libjpeg.so.8 (0x00007fc0b88bb000)
libgeotiff.so.5 => /usr/lib/libgeotiff.so.5 (0x00007fc0b8883000)
libtiff.so.5 => /usr/lib/libtiff.so.5 (0x00007fc0b87f3000)
libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007fc0b87bc000)
libcfitsio.so.9 => /usr/lib/libcfitsio.so.9 (0x00007fc0b84a0000)
libpq.so.5 => /usr/lib/libpq.so.5 (0x00007fc0b8451000)
libzstd.so.1 => /usr/lib/libzstd.so.1 (0x00007fc0b837f000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007fc0b835b000)
librt.so.1 => /usr/lib/librt.so.1 (0x00007fc0b8350000)
libspatialite.so.7 => /usr/lib/libspatialite.so.7 (0x00007fc0b7dc5000)
libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0x00007fc0b7c8a000)
libproj.so.15 => /usr/lib/libproj.so.15 (0x00007fc0b799b000)
libpcre.so.1 => /usr/lib/libpcre.so.1 (0x00007fc0b7929000)
libcurl.so.4 => /usr/lib/libcurl.so.4 (0x00007fc0b7897000)
libxml2.so.2 => /usr/lib/libxml2.so.2 (0x00007fc0b7731000)
libz.so.1 => /usr/lib/libz.so.1 (0x00007fc0b7717000)
liblzma.so.5 => /usr/lib/liblzma.so.5 (0x00007fc0b76ef000)
libicui18n.so.67 => /usr/lib/libicui18n.so.67 (0x00007fc0b73ef000)
libicuuc.so.67 => /usr/lib/libicuuc.so.67 (0x00007fc0b7208000)
libicudata.so.67 => /usr/lib/libicudata.so.67 (0x00007fc0b56ef000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007fc0b56e9000)
libmariadb.so.3 => /usr/lib/libmariadb.so.3 (0x00007fc0b569a000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007fc0b54bd000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007fc0b5378000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007fc0b51b1000)
/usr/lib64/ld-linux-x86-64.so.2 (0x00007fc0bae80000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007fc0b5195000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007fc0b50c1000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00007fc0b5076000)
liblcms2.so.2 => /usr/lib/liblcms2.so.2 (0x00007fc0b5017000)
libsmime3.so => /usr/lib/libsmime3.so (0x00007fc0b4fed000)
libnss3.so => /usr/lib/libnss3.so (0x00007fc0b4eb5000)
libnspr4.so => /usr/lib/libnspr4.so (0x00007fc0b4e70000)
libgeos-3.8.0.so => /usr/lib/libgeos-3.8.0.so (0x00007fc0b4c9c000)
libnsl.so.2 => /usr/lib/libnsl.so.2 (0x00007fc0b4c82000)
libhdf5_hl.so.200 => /usr/lib/libhdf5_hl.so.200 (0x00007fc0b4c5d000)
libsz.so.2 => /usr/lib/libsz.so.2 (0x00007fc0b4c58000)
libssl.so.1.1 => /usr/lib/libssl.so.1.1 (0x00007fc0b4bc6000)
libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00007fc0b4b71000)
libldap_r-2.4.so.2 => /usr/lib/libldap_r-2.4.so.2 (0x00007fc0b4b1b000)
libnghttp2.so.14 => /usr/lib/libnghttp2.so.14 (0x00007fc0b4aef000)
libidn2.so.0 => /usr/lib/libidn2.so.0 (0x00007fc0b4ace000)
libssh2.so.1 => /usr/lib/libssh2.so.1 (0x00007fc0b4a8c000)
libpsl.so.5 => /usr/lib/libpsl.so.5 (0x00007fc0b4a79000)
libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00007fc0b4993000)
libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00007fc0b4962000)
libcom_err.so.2 => /usr/lib/libcom_err.so.2 (0x00007fc0b495c000)
libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x00007fc0b4947000)
libharfbuzz.so.0 => /usr/lib/libharfbuzz.so.0 (0x00007fc0b4878000)
libnssutil3.so => /usr/lib/libnssutil3.so (0x00007fc0b4845000)
libplds4.so => /usr/lib/libplds4.so (0x00007fc0b4840000)
libplc4.so => /usr/lib/libplc4.so (0x00007fc0b4839000)
libtirpc.so.3 => /usr/lib/libtirpc.so.3 (0x00007fc0b4808000)
libaec.so.0 => /usr/lib/libaec.so.0 (0x00007fc0b47fe000)
libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x00007fc0b47ef000)
libkeyutils.so.1 => /usr/lib/libkeyutils.so.1 (0x00007fc0b47e8000)
libresolv.so.2 => /usr/lib/libresolv.so.2 (0x00007fc0b47ce000)
liblber-2.4.so.2 => /usr/lib/liblber-2.4.so.2 (0x00007fc0b47be000)
libsasl2.so.3 => /usr/lib/libsasl2.so.3 (0x00007fc0b479e000)
libunistring.so.2 => /usr/lib/libunistring.so.2 (0x00007fc0b461c000)
libgraphite2.so.3 => /usr/lib/libgraphite2.so.3 (0x00007fc0b45f7000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007fc0b44ce000)

@joa-quim
Copy link
Member

so the the package probably uses the so file in /usr/lib

No, SQLite.jl uses the artifact SQLite_jll and that is likely the source of the problem.
Let me guess, if you do this you get the same as I do on Centos8

nm -D /usr/linb/libsqlite3.so.0 | grep sqlite3_column_table
000000000002ea10 T sqlite3_column_table_name
000000000002ea30 T sqlite3_column_table_name16

@joa-quim
Copy link
Member

But what I wanted in one of my first posts is that you run the ldd /usr/lib/libgmt.so command from Julia after the error

julia> using SQLite
julia> using GMT
julia> makecpt(color=:jet);
ERROR: could not load library "/usr/lib/libgmt.so"

The idea is to try to see if it's using a different sqlite than that in /usr/lib

@htyeim
Copy link
Contributor Author

htyeim commented Jul 14, 2020

I have tried gmt installed using conda, the problem exists (ldd output is given below).

using GMT
using SQLite

run(`ldd $(GMT.thelib)`)
        linux-vdso.so.1 (0x00007fffc8aff000)
        libnetcdf.so.18 => /home/t/.julia/conda/3/lib/./libnetcdf.so.18 (0x00007f849ea50000)
        libcurl.so.4 => /home/t/.julia/conda/3/lib/./libcurl.so.4 (0x00007f849e9c7000)
        libgdal.so.26 => /home/t/.julia/conda/3/lib/./libgdal.so.26 (0x00007f849d511000)
        libgeos_c.so.1 => /home/t/.julia/conda/3/lib/./libgeos_c.so.1 (0x00007f849d4d6000)
        libpcre.so.1 => /home/t/.julia/conda/3/lib/./libpcre.so.1 (0x00007f849d48f000)
        libfftw3f.so.3 => /home/t/.julia/conda/3/lib/./libfftw3f.so.3 (0x00007f849d277000)
        libfftw3f_threads.so.3 => /home/t/.julia/conda/3/lib/./libfftw3f_threads.so.3 (0x00007f849d26b000)
        liblapack.so.3 => /home/t/.julia/conda/3/lib/./liblapack.so.3 (0x00007f849cb88000)
        libpostscriptlight.so.6 => /home/t/.julia/conda/3/lib/./libpostscriptlight.so.6 (0x00007f849cb3b000)
        libm.so.6 => /usr/lib/libm.so.6 (0x00007f849c997000)
        libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f849c991000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007f849c7ca000)
        libmfhdf.so.0 => /home/t/.julia/conda/3/lib/././libmfhdf.so.0 (0x00007f849c79c000)
        libdf.so.0 => /home/t/.julia/conda/3/lib/././libdf.so.0 (0x00007f849c6ed000)
        libhdf5_hl.so.100 => /home/t/.julia/conda/3/lib/././libhdf5_hl.so.100 (0x00007f849c6c7000)
        libhdf5.so.103 => /home/t/.julia/conda/3/lib/././libhdf5.so.103 (0x00007f849c326000)
        libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f849c304000)
        libssh2.so.1 => /home/t/.julia/conda/3/lib/././libssh2.so.1 (0x00007f849c2c0000)
        libssl.so.1.1 => /home/t/.julia/conda/3/lib/././libssl.so.1.1 (0x00007f849c22e000)
        libcrypto.so.1.1 => /home/t/.julia/conda/3/lib/././libcrypto.so.1.1 (0x00007f849bf62000)
        libgssapi_krb5.so.2 => /home/t/.julia/conda/3/lib/././libgssapi_krb5.so.2 (0x00007f849bf13000)
        libkrb5.so.3 => /home/t/.julia/conda/3/lib/././libkrb5.so.3 (0x00007f849be3a000)
        libk5crypto.so.3 => /home/t/.julia/conda/3/lib/././libk5crypto.so.3 (0x00007f849be1b000)
        libcom_err.so.3 => /home/t/.julia/conda/3/lib/././libcom_err.so.3 (0x00007f849be15000)
        libz.so.1 => /home/t/.julia/conda/3/lib/././libz.so.1 (0x00007f849bdf3000)
        librt.so.1 => /usr/lib/librt.so.1 (0x00007f849bde8000)
        libtiledb.so.1.7 => /home/t/.julia/conda/3/lib/././libtiledb.so.1.7 (0x00007f849b64e000)
        libpoppler.so.78 => /home/t/.julia/conda/3/lib/././libpoppler.so.78 (0x00007f849b3a9000)
        libjson-c.so.4 => /home/t/.julia/conda/3/lib/././libjson-c.so.4 (0x00007f849b397000)
        libfreexl.so.1 => /home/t/.julia/conda/3/lib/././libfreexl.so.1 (0x00007f849b38b000)
        libwebp.so.7 => /home/t/.julia/conda/3/lib/././libwebp.so.7 (0x00007f849b2ff000)
        libsqlite3.so.0 => /home/t/.julia/conda/3/lib/././libsqlite3.so.0 (0x00007f849b1db000)
        libkmlbase.so.1 => /home/t/.julia/conda/3/lib/././libkmlbase.so.1 (0x00007f849b1b5000)
        libkmldom.so.1 => /home/t/.julia/conda/3/lib/././libkmldom.so.1 (0x00007f849b0f2000)
        libkmlengine.so.1 => /home/t/.julia/conda/3/lib/././libkmlengine.so.1 (0x00007f849b0b1000)
        libkmlxsd.so.1 => /home/t/.julia/conda/3/lib/././libkmlxsd.so.1 (0x00007f849b09b000)
        libkmlregionator.so.1 => /home/t/.julia/conda/3/lib/././libkmlregionator.so.1 (0x00007f849b08a000)
        libexpat.so.1 => /home/t/.julia/conda/3/lib/././libexpat.so.1 (0x00007f849b056000)
        libxerces-c-3.2.so => /home/t/.julia/conda/3/lib/././libxerces-c-3.2.so (0x00007f849accf000)
        libopenjp2.so.7 => /home/t/.julia/conda/3/lib/././libopenjp2.so.7 (0x00007f849ac72000)
        libgif.so.7 => /home/t/.julia/conda/3/lib/././libgif.so.7 (0x00007f849ac63000)
        libjpeg.so.9 => /home/t/.julia/conda/3/lib/././libjpeg.so.9 (0x00007f849ac25000)
        libgeotiff.so.5 => /home/t/.julia/conda/3/lib/././libgeotiff.so.5 (0x00007f849abee000)
        libtiff.so.5 => /home/t/.julia/conda/3/lib/././libtiff.so.5 (0x00007f849ab6e000)
        libpng16.so.16 => /home/t/.julia/conda/3/lib/././libpng16.so.16 (0x00007f849ab35000)
        libcfitsio.so.8 => /home/t/.julia/conda/3/lib/././libcfitsio.so.8 (0x00007f849a81a000)
        libpq.so.5 => /home/t/.julia/conda/3/lib/././libpq.so.5 (0x00007f849a7cb000)
        libzstd.so.1 => /home/t/.julia/conda/3/lib/././libzstd.so.1 (0x00007f849a70f000)
        libproj.so.19 => /home/t/.julia/conda/3/lib/././libproj.so.19 (0x00007f849a442000)
        libdap.so.25 => /home/t/.julia/conda/3/lib/././libdap.so.25 (0x00007f849a2b6000)
        libdapserver.so.7 => /home/t/.julia/conda/3/lib/././libdapserver.so.7 (0x00007f849a2a4000)
        libdapclient.so.6 => /home/t/.julia/conda/3/lib/././libdapclient.so.6 (0x00007f849a25e000)
        libuuid.so.1 => /home/t/.julia/conda/3/lib/././libuuid.so.1 (0x00007f849a255000)
        libspatialite.so.7 => /home/t/.julia/conda/3/lib/././libspatialite.so.7 (0x00007f8499cd5000)
        libxml2.so.2 => /home/t/.julia/conda/3/lib/././libxml2.so.2 (0x00007f8499b6b000)
        liblzma.so.5 => /home/t/.julia/conda/3/lib/././liblzma.so.5 (0x00007f8499b42000)
        libiconv.so.2 => /home/t/.julia/conda/3/lib/././libiconv.so.2 (0x00007f8499a5a000)
        libicui18n.so.64 => /home/t/.julia/conda/3/lib/././libicui18n.so.64 (0x00007f8499779000)
        libicuuc.so.64 => /home/t/.julia/conda/3/lib/././libicuuc.so.64 (0x00007f84995a2000)
        libicudata.so.64 => /home/t/.julia/conda/3/lib/././libicudata.so.64 (0x00007f8497b5e000)
        libkea.so.1.4 => /home/t/.julia/conda/3/lib/././libkea.so.1.4 (0x00007f8497af0000)
        libhdf5_cpp.so.103 => /home/t/.julia/conda/3/lib/././libhdf5_cpp.so.103 (0x00007f8497a7a000)
        libstdc++.so.6 => /home/t/.julia/conda/3/lib/././libstdc++.so.6 (0x00007f8497906000)
        /usr/lib64/ld-linux-x86-64.so.2 (0x00007f849f096000)
        libgcc_s.so.1 => /home/t/.julia/conda/3/lib/././libgcc_s.so.1 (0x00007f84978f2000)
        libgeos-3.8.1.so => /home/t/.julia/conda/3/lib/././libgeos-3.8.1.so (0x00007f849773b000)
        libkrb5support.so.0 => /home/t/.julia/conda/3/lib/./././libkrb5support.so.0 (0x00007f849772a000)
        libresolv.so.2 => /usr/lib/libresolv.so.2 (0x00007f8497710000)
        libtbb.so.2 => /home/t/.julia/conda/3/lib/./././libtbb.so.2 (0x00007f84976c8000)
        libbz2.so.1.0 => /home/t/.julia/conda/3/lib/./././libbz2.so.1.0 (0x00007f84976b4000)
        liblz4.so.1 => /home/t/.julia/conda/3/lib/./././liblz4.so.1 (0x00007f849767e000)
        libfreetype.so.6 => /home/t/.julia/conda/3/lib/./././libfreetype.so.6 (0x00007f84975c8000)
        libfontconfig.so.1 => /home/t/.julia/conda/3/lib/./././libfontconfig.so.1 (0x00007f8497581000)
        libminizip.so => /home/t/.julia/conda/3/lib/./././libminizip.so (0x00007f8497571000)
        liburiparser.so => /home/t/.julia/conda/3/lib/./././liburiparser.so (0x00007f8497550000)
        libkmlconvenience.so.1 => /home/t/.julia/conda/3/lib/./././libkmlconvenience.so.1 (0x00007f849752b000)
        libnsl.so.1 => /usr/lib/libnsl.so.1 (0x00007f849750e000)
        libcharset.so.1 => /home/t/.julia/conda/3/lib/./././libcharset.so.1 (0x00007f8497509000)
Process(`ldd /home/t/.julia/conda/3/lib/libgmt.so`, ProcessExited(0))


I also tried Centos 8 (using docker), it seems the problem still exists....

julia> using GMT

julia> using SQLite

julia> makecpt(color=:jet)
ERROR: could not load library "/usr/lib64/libgmt.so"
/lib64/libgdal.so.26: undefined symbol: sqlite3_column_table_name
Stacktrace:
 [1] GMT_Create_Session at /root/.julia/packages/GMT/oeYJl/src/libgmt.jl:26 [inlined] (repeats 2 times)
 [2] gmt(::String, ::Nothing) at /root/.julia/packages/GMT/oeYJl/src/gmt_main.jl:125
 [3] makecpt(::String, ::Nothing; kwargs::Base.Iterators.Pairs{Symbol,Symbol,Tuple{Symbol},NamedTuple{(:color,),Tuple{Symbol}}}) at /root/.julia/packages/GMT/oeYJl/src/makecpt.jl:92
 [4] top-level scope at REPL[3]:1
caused by [exception 1]
UndefVarError: API not defined
Stacktrace:
 [1] gmt(::String, ::Nothing) at /root/.julia/packages/GMT/oeYJl/src/gmt_main.jl:122
 [2] makecpt(::String, ::Nothing; kwargs::Base.Iterators.Pairs{Symbol,Symbol,Tuple{Symbol},NamedTuple{(:color,),Tuple{Symbol}}}) at /root/.julia/packages/GMT/oeYJl/src/makecpt.jl:92
 [3] top-level scope at REPL[3]:1

the output of ldd

run(`ldd /usr/lib64/libgmt.so`)
        linux-vdso.so.1 (0x00007ffdadfce000)
        libnetcdf.so.15 => /lib64/libnetcdf.so.15 (0x00007faa110ce000)
        libcurl.so.4 => /lib64/libcurl.so.4 (0x00007faa10e4a000)
        libgdal.so.26 => /lib64/libgdal.so.26 (0x00007faa0f615000)
        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007faa0f3a4000)
        libfftw3f.so.3 => /lib64/libfftw3f.so.3 (0x00007faa0ef8d000)
        libfftw3f_threads.so.3 => /lib64/libfftw3f_threads.so.3 (0x00007faa0ed85000)
        liblapack.so.3 => /lib64/liblapack.so.3 (0x00007faa0e4e4000)
        libblas.so.3 => /lib64/libblas.so.3 (0x00007faa0e290000)
        libz.so.1 => /lib64/libz.so.1 (0x00007faa0e079000)
        libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007faa0dd60000)
        libpostscriptlight.so.6 => /lib64/libpostscriptlight.so.6 (0x00007faa0db1c000)
        libm.so.6 => /lib64/libm.so.6 (0x00007faa0d79a000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007faa0d596000)
        libgomp.so.1 => /lib64/libgomp.so.1 (0x00007faa0d35e000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007faa0d146000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007faa0cf26000)
        libc.so.6 => /lib64/libc.so.6 (0x00007faa0cb64000)
        libmfhdf.so.0 => /lib64/libmfhdf.so.0 (0x00007faa0c93b000)
        libdf.so.0 => /lib64/libdf.so.0 (0x00007faa0c692000)
        libjpeg.so.62 => /lib64/libjpeg.so.62 (0x00007faa0c429000)
        libsz.so.2 => /lib64/libsz.so.2 (0x00007faa0c226000)
        libhdf5_hl.so.100 => /lib64/libhdf5_hl.so.100 (0x00007faa0c002000)
        libhdf5.so.103 => /lib64/libhdf5.so.103 (0x00007faa0ba77000)
        libtirpc.so.3 => /lib64/libtirpc.so.3 (0x00007faa0b844000)
        libnghttp2.so.14 => /lib64/libnghttp2.so.14 (0x00007faa0b61d000)
        libssl.so.1.1 => /lib64/libssl.so.1.1 (0x00007faa0b389000)
        libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007faa0aea6000)
        libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007faa0ac56000)
        libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007faa0a966000)
        libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007faa0a74a000)
        libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007faa0a546000)
        libarmadillo.so.9 => /lib64/libarmadillo.so.9 (0x00007faa0a335000)
        libpoppler.so.78 => /lib64/libpoppler.so.78 (0x00007faa09e4f000)
        libjson-c.so.4 => /lib64/libjson-c.so.4 (0x00007faa09c3f000)
        libfreexl.so.1 => /lib64/libfreexl.so.1 (0x00007faa09a35000)
        libgeos_c.so.1 => /lib64/libgeos_c.so.1 (0x00007faa097fb000)
        libwebp.so.7 => /lib64/libwebp.so.7 (0x00007faa0958d000)
        libodbc.so.2 => /lib64/libodbc.so.2 (0x00007faa0931c000)
        libodbcinst.so.2 => /lib64/libodbcinst.so.2 (0x00007faa09106000)
        libkmlbase.so.1 => /lib64/libkmlbase.so.1 (0x00007faa08ee3000)
        libkmldom.so.1 => /lib64/libkmldom.so.1 (0x00007faa08c21000)
        libkmlengine.so.1 => /lib64/libkmlengine.so.1 (0x00007faa089e4000)
        libkmlxsd.so.1 => /lib64/libkmlxsd.so.1 (0x00007faa087ce000)
        libkmlregionator.so.1 => /lib64/libkmlregionator.so.1 (0x00007faa085c2000)
        libexpat.so.1 => /lib64/libexpat.so.1 (0x00007faa08387000)
        libxerces-c-3.2.so => /lib64/libxerces-c-3.2.so (0x00007faa07db4000)
        libopenjp2.so.7 => /lib64/libopenjp2.so.7 (0x00007faa07b62000)
        libjasper.so.4 => /lib64/libjasper.so.4 (0x00007faa07904000)
        libogdi.so.4 => /lib64/libogdi.so.4 (0x00007faa076e7000)
        libgif.so.7 => /lib64/libgif.so.7 (0x00007faa074dd000)
        libgeotiff.so.5 => /lib64/libgeotiff.so.5 (0x00007faa072a9000)
        libtiff.so.5 => /lib64/libtiff.so.5 (0x00007faa07030000)
        libgta.so.1 => /lib64/libgta.so.1 (0x00007faa06e26000)
        libpng16.so.16 => /lib64/libpng16.so.16 (0x00007faa06bf1000)
        libcfitsio.so.7 => /lib64/libcfitsio.so.7 (0x00007faa066e6000)
        libpq.so.5 => /lib64/libpq.so.5 (0x00007faa0648a000)
        librt.so.1 => /lib64/librt.so.1 (0x00007faa06281000)
        libdapclient.so.6 => /lib64/libdapclient.so.6 (0x00007faa06037000)
        libdapserver.so.7 => /lib64/libdapserver.so.7 (0x00007faa05e26000)
        libdap.so.25 => /lib64/libdap.so.25 (0x00007faa05a6a000)
        libspatialite.so.7 => /lib64/libspatialite.so.7 (0x00007faa0522f000)
        libsqlite3.so.0 => /lib64/libsqlite3.so.0 (0x00007faa04f1c000)
        libproj.so.15 => /lib64/libproj.so.15 (0x00007faa04a0c000)
        libxml2.so.2 => /lib64/libxml2.so.2 (0x00007faa046a4000)
        liblzma.so.5 => /lib64/liblzma.so.5 (0x00007faa0447d000)
        libmariadb.so.3 => /lib64/libmariadb.so.3 (0x00007faa0422b000)
        libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007faa03e96000)
        /lib64/ld-linux-x86-64.so.2 (0x00007faa11a85000)
        libgfortran.so.5 => /lib64/libgfortran.so.5 (0x00007faa03a19000)
        libgnutls.so.30 => /lib64/libgnutls.so.30 (0x00007faa0365d000)
        libaec.so.0 => /lib64/libaec.so.0 (0x00007faa03455000)
        libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007faa03244000)
        libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007faa03040000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007faa02e29000)
        libopenblaso.so.0 => /lib64/libopenblaso.so.0 (0x00007faa010df000)
        libarpack.so.2 => /lib64/libarpack.so.2 (0x00007faa00e91000)
        libsuperlu.so.5.1 => /lib64/libsuperlu.so.5.1 (0x00007faa00c1b000)
        libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007faa0095f000)
        libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x00007faa0071a000)
        libsmime3.so => /lib64/libsmime3.so (0x00007faa004f1000)
        libnss3.so => /lib64/libnss3.so (0x00007faa001c1000)
        libnspr4.so => /lib64/libnspr4.so (0x00007fa9fff80000)
        liblcms2.so.2 => /lib64/liblcms2.so.2 (0x00007fa9ffd23000)
        libgeos-3.7.2.so => /lib64/libgeos-3.7.2.so (0x00007fa9ff938000)
        libltdl.so.7 => /lib64/libltdl.so.7 (0x00007fa9ff72e000)
        liburiparser.so.1 => /lib64/liburiparser.so.1 (0x00007fa9ff510000)
        libkmlconvenience.so.1 => /lib64/libkmlconvenience.so.1 (0x00007fa9ff2ee000)
        libjbig.so.2.1 => /lib64/libjbig.so.2.1 (0x00007fa9ff0e2000)
        libbz2.so.1 => /lib64/libbz2.so.1 (0x00007fa9feed1000)
        libldap_r-2.4.so.2 => /lib64/libldap_r-2.4.so.2 (0x00007fa9fec7b000)
        libuuid.so.1 => /lib64/libuuid.so.1 (0x00007fa9fea73000)
        libquadmath.so.0 => /lib64/libquadmath.so.0 (0x00007fa9fe832000)
        libp11-kit.so.0 => /lib64/libp11-kit.so.0 (0x00007fa9fe4ff000)
        libidn2.so.0 => /lib64/libidn2.so.0 (0x00007fa9fe2e1000)
        libunistring.so.2 => /lib64/libunistring.so.2 (0x00007fa9fdf60000)
        libtasn1.so.6 => /lib64/libtasn1.so.6 (0x00007fa9fdd4d000)
        libnettle.so.6 => /lib64/libnettle.so.6 (0x00007fa9fdb14000)
        libhogweed.so.4 => /lib64/libhogweed.so.4 (0x00007fa9fd8e4000)
        libgmp.so.10 => /lib64/libgmp.so.10 (0x00007fa9fd64c000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fa9fd421000)
        libopenblasp.so.0 => /lib64/libopenblasp.so.0 (0x00007fa9fb6d6000)
        libsatlas.so.3 => /usr/lib64/atlas/libsatlas.so.3 (0x00007fa9fa8fb000)
        libnssutil3.so => /lib64/libnssutil3.so (0x00007fa9fa6ca000)
        libplc4.so => /lib64/libplc4.so (0x00007fa9fa4c5000)
        libplds4.so => /lib64/libplds4.so (0x00007fa9fa2c1000)
        liblber-2.4.so.2 => /lib64/liblber-2.4.so.2 (0x00007fa9fa0b1000)
        libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007fa9f9e93000)
        libffi.so.6 => /lib64/libffi.so.6 (0x00007fa9f9c8a000)
        libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007fa9f9a06000)
        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fa9f97dd000)
Process(`ldd /usr/lib64/libgmt.so`, ProcessExited(0))


All the paths of libsqlite.3 in these outputs seem ok... but the problem exists...

@joa-quim
Copy link
Member

OK, tomorrow I'll install GMT and Julia in that Centos 8. But still, what about the?

nm -D /usr/lib/libsqlite3.so.0 | grep sqlite3_column_table

@htyeim
Copy link
Contributor Author

htyeim commented Jul 14, 2020

in zsh:

nm -D /usr/lib/libsqlite3.so.0 | grep sqlite3_column_table
00000000000d83f0 T sqlite3_column_table_name
00000000000d8490 T sqlite3_column_table_name16

in julia

julia> using GMT

julia> using SQLite

julia> p=pipeline(`nm -D /usr/lib/libsqlite3.so.0`,`grep sqlite3_column_table`)
pipeline(`nm -D /usr/lib/libsqlite3.so.0`, stdout=`grep sqlite3_column_table`)

julia> run(p)
00000000000d83f0 T sqlite3_column_table_name
00000000000d8490 T sqlite3_column_table_name16
Base.ProcessChain(Base.Process[Process(`nm -D /usr/lib/libsqlite3.so.0`, ProcessExited(0)), Process(`grep sqlite3_column_table`, ProcessExited(0))], Base.DevNull(), Base.DevNull(), Base.DevNull())

julia> 

Still seems ok....

@joa-quim
Copy link
Member

... running out of ideas.

@htyeim
Copy link
Contributor Author

htyeim commented Jul 14, 2020

It seems SQLite.jl build its own so file in artifacts. but the version is the same as the one in /usr/lib...

 ~/.julia/artifacts/80b0e9dda82536912413bc98e31e5a9a08a18f06/lib  ls -al
total 18160
drwxr-xr-x 3 t t     4096 Jul  7 19:49 .
drwxr-xr-x 7 t t     4096 Jul  7 19:49 ..
-r--r--r-- 1 t t 13131268 Jul  7 19:49 libsqlite3.a
-r-xr-xr-x 1 t t      979 Jul  7 19:49 libsqlite3.la
lrwxrwxrwx 1 t t       19 Jul  7 19:49 libsqlite3.so -> libsqlite3.so.0.8.6
lrwxrwxrwx 1 t t       19 Jul  7 19:49 libsqlite3.so.0 -> libsqlite3.so.0.8.6
-r-xr-xr-x 1 t t  5447209 Jul  7 19:49 libsqlite3.so.0.8.6
drwxr-xr-x 2 t t     4096 Jul  7 19:49 pkgconfig

However, when I ran nm at here

~/.julia/artifacts/80b0e9dda82536912413bc98e31e5a9a08a18f06/lib  nm -D libsqlite3.so.0 | grep sqlite3_column_table

no sqlite3_column_table.

Is this the reason???

@joa-quim
Copy link
Member

Almost for sure. But now the question is, why is that lib being used (indirectly via GMT) instead of the one in /usr/lib?

I have this idea that when having GMT installed GDAL.jl, ArchGDAL.jl, netcdf.jl, HDF5.jl, GEOS.jl should all use the system libs that can be fished in GMT dependencies. This would save some GB of space ... and avoid problems like this.

@joa-quim
Copy link
Member

It seems SQLite.jl build its own so file in artifacts

No, it downloads it. I think an issue should be open in BinaryBuilder or whatever because that lib is faulty.

@htyeim
Copy link
Contributor Author

htyeim commented Jul 14, 2020

It's too complex.... 🤣

@joa-quim
Copy link
Member

Have you tried to replace the lib in the artifact by the system one?

@htyeim
Copy link
Contributor Author

htyeim commented Jul 14, 2020

It works...

 t@tc  ~/.julia/artifacts/80b0e9dda82536912413bc98e31e5a9a08a18f06/lib  ls
libsqlite3.a  libsqlite3.la  libsqlite3.so  libsqlite3.so.0  libsqlite3.so.0.8.6  pkgconfig
 t@tc  ~/.julia/artifacts/80b0e9dda82536912413bc98e31e5a9a08a18f06/lib  mv libsqlite3.so.0.8.6 libsqlite3.so.0.8.6.backup
 t@tc  ~/.julia/artifacts/80b0e9dda82536912413bc98e31e5a9a08a18f06/lib  cp /usr/lib/libsqlite3.so.0.8.6 ./
 t@tc  ~/.julia/artifacts/80b0e9dda82536912413bc98e31e5a9a08a18f06/lib  ls
libsqlite3.a  libsqlite3.la  libsqlite3.so  libsqlite3.so.0  libsqlite3.so.0.8.6  libsqlite3.so.0.8.6.backup  pkgconfig
 t@tc  ~/.julia/artifacts/80b0e9dda82536912413bc98e31e5a9a08a18f06/lib  ls -al
total 19416
drwxr-xr-x 3 t t     4096 Jul 14 19:03 .
drwxr-xr-x 7 t t     4096 Jul  7 19:49 ..
-r--r--r-- 1 t t 13131268 Jul  7 19:49 libsqlite3.a
-r-xr-xr-x 1 t t      979 Jul  7 19:49 libsqlite3.la
lrwxrwxrwx 1 t t       19 Jul  7 19:49 libsqlite3.so -> libsqlite3.so.0.8.6
lrwxrwxrwx 1 t t       19 Jul  7 19:49 libsqlite3.so.0 -> libsqlite3.so.0.8.6
-rwxr-xr-x 1 t t  1285520 Jul 14 19:03 libsqlite3.so.0.8.6
-r-xr-xr-x 1 t t  5447209 Jul  7 19:49 libsqlite3.so.0.8.6.backup
drwxr-xr-x 2 t t     4096 Jul  7 19:49 pkgconfig
 t@tc  ~/.julia/artifacts/80b0e9dda82536912413bc98e31e5a9a08a18f06/lib  

and then

 t@tc  ~/.julia/artifacts/80b0e9dda82536912413bc98e31e5a9a08a18f06/lib  julia
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.4.2 (2020-05-23)
 _/ |\__'_|_|_|\__'_|  |  
|__/                   |

julia> using GMT

julia> using SQLite

julia> makecpt(color=:jet)
GMT.GMTcpt([0.0 0.0 0.4980392156862745; 0.0 0.0 1.0; … ; 1.0 0.0 0.0; 0.4980392156862745 0.4980392156862745 0.4980392156862745], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0 0.125; 0.125 0.375; … ; 0.625 0.875; 0.875 1.0], [0.0, 1.0], [0.0 0.0 0.0; 1.0 1.0 1.0; 0.5 0.5 0.5], 24, NaN, [0.0 0.0 … 0.0 1.0; 0.0 0.0 … 1.0 1.0; … ; 1.0 1.0 … 0.0 0.0; 1.0 0.0 … 0.0 0.0], "rgb", String[])

julia> 

So it is definitely related to SQLite.jl ....
Actually I have opened a issue in SQLite (ref). But I think that the response may not be quick (based on the content of other issues...)

@joa-quim
Copy link
Member

Yes, I don't know what will happen when SQLite.jl get updated. Will it restore the faulty lib?

@htyeim
Copy link
Contributor Author

htyeim commented Jul 14, 2020

After replacing the so file, all code works fine... Thank you!!!
test

I think the so files are download from SQLite_jll, and I think it's also outdated...

I am aware that most julia packages are maintained by volunteers, so sometime there are maybe some problems. (Maybe even julia itself, for example in the official coprs source https://copr.fedorainfracloud.org/coprs/nalimilan/julia/packages/, the build of latest version has been failed for months.....)

I am closing this for the problems is related to other package.... Thank you again!

@htyeim htyeim closed this as completed Jul 14, 2020
@joa-quim
Copy link
Member

Cool map. Are you using annotated lines for the parallels?

@htyeim
Copy link
Contributor Author

htyeim commented Jul 14, 2020

The code I use is shown below. Generally, the figure is plotted using contour (solar zenith and geomagnetic latitude) grdimage (TEC data that I processed from GNSS observations), then some text, colorbar etc. Thanks for the simplicity of gmt and GMT.jl. It's very easy to produce this kind of high quality figures.

it's nested in a long sequence of function calls, so it's difficult to exact the data... I'm sorry.

        gmtbegin()
        gmtfig(file_to_fig_tmp, fmt="png")

        basemap(region=R, proj=proj, frame=(axes = :a,), figsize=12, )

        coast(region=R, 
                    borders=(type = :a, pen = (0.06, :black, "--")),
                    shore=(type = 1, pen = (0.6, :black,)), 
                    # Vd = 1,
            )

        for ik in key_xxs
            contour(get_GMTds(xxs[ik], yys[ik], mlats[ik]),
                        pen="0.5p,+c",
                        annot=(labels = (font = 5, prefix = "MLAT ",),),
                        # fill = true,
                        color=cpt_mlat,
                        # Vd = 1,
                        region=R,
                        )
            contour(get_GMTds(xxs_z[ik], yys_z[ik], zeniths[ik]),
                        pen="0.5p,--,+c",
                        annot=(labels = (font = 5, prefix = "ZEN ",),),
                        color=cpt_zenith,
                        # Vd = 1,
                        region=R,
                    )
        end

        for ig in grds
            grdimage(ig, region=R,
                        color=cb_jet, nan_alpha=true)
        end

        plot(pos_ds, region=R,
            symbol=(symb = "a", size = 0.16,), fill=:red,
            # Vd = 1,
            )

        text(ds_slice_t, region=R,
                    font=(16, "Times-Roman", :black),
                    justify=:CC, 
                    offset=(shift = (0.0, 1.0),),
                    noclip=true,
                    # Vd = Vd,
                    )

        colorbar(pos=(anchor = :TC, length = (9.5, 0.2), 
                    horizontal = true, offset = (0, 2.17),),
                    color=cb_jet, 
                    frame=(annot = :auto, ticks = :auto, 
                                xlabel = "TEC (TECU)",),# ylabel=:m),
                    par=(FONT_LABEL = 9, FONT_ANNOT_PRIMARY = 5, MAP_LABEL_OFFSET = 0.01,),
                    x_offset=0,
                    y_offset=-0.4,
                    # Vd = Vd,
                ) 
        gmtend() 

@joa-quim
Copy link
Member

joa-quim commented Jul 14, 2020

Tell me, do you write these nice elaborated scripts only with the few man pages provided or you also look at the modules code?
The documentation is a major headache. Spend almost one day adapting the subplot page and will probably spend today doing the same with movie. BTW, I would like you than that you try to make some movies with movie. It's working now for the simple cases I tested (but latest is yet in master).

@htyeim
Copy link
Contributor Author

htyeim commented Jul 14, 2020

I read the document of GMT.jl extensively, and sometimes also gmt's document.

At first, I will think of what elements I need then go to examples to find something similar and check the example code related to the figures.

After plotting some figures (have some feelings of how GMT.jl works), recently, I just check the parameters of each function I need in (https://www.generic-mapping-tools.org/GMT.jl/latest/). Actually, I build the document locally (copy make.jl in doc then julia make.jl) so I don't need the internet to access the content.

I think the most efficient way (at least for me) to learn this package is to run the examples in person, then change the parameters gradually to meet one's needs.

I tried to use movie months ago but failed (🤣 )... If there is some update, I would like to have a try. Do you have some example code?

@joa-quim
Copy link
Member

I committed the movie.md in master. It's along manual and has two examples at the end that should +/- work but ...
Second one has an error. Where it reads justify=:CM it should read region_justify=:CM. Try the first example

function globe_sc()
    coast(region=:global, proj=(name=:Ortho, center=("MOVIE_FRAME",20)), figsize="MOVIE_WIDTH", land=:maroon, water=:turquoise, frame=:g, X=0, Y=0)
end
movie(globe_sc, name=:globe, frames=360, gif=true, canvas="15x15x100", label=:f, progress=true, Vd=2)

and at the end run, on the bash shell, the command that it prints. Vd=1 or no Vd at all should work too but I suspect it won't because the generated, main_script.sh is using classical names and in other than Windows (only place I tested it) I think that is not accepted. One has to use the modern names, so you'll probably have to edit it and change pscoast to coast.

@htyeim
Copy link
Contributor Author

htyeim commented Jul 15, 2020

OK, I will check the function, and try to use it in my code. I'm now using the following function to convert figures to movie after plotting all figures:

function pngs2moive(imgnames=String[], filename="";
                    framerate=39)

    # imgnames = glob("*.png", "/Users/t/Data/ROOT_FOLDER/test_event_htdm_test_split/")
    # sort!(imgnames)
    # filename = "/Users/t/Data/ROOT_FOLDER/test_event_htdm_test_split/test.mp4"
    

    if isempty(imgnames) return filename end
    if isempty(filename)
        filename = string(dirname(imgnames[1]), ".mp4")
    end
    # tmp_pf =  string("pngs2moive_", randstring(8), )
    # tmp_file = abspath(string(tmp_pf, ".mp4"))
    tmp_stream = abspath(string(filename, ".stream"))


    
    props = [:priv_data => ("crf" => "36", "refs" => "3", "preset" => "ultrafast",)]

    firstimg = load(imgnames[1], view=false);
    l, w  = size(firstimg)
    s = (l % 2 == 0 ? l : l + 1, w % 2 == 0 ? w : w + 1)
    lj = Array{typeof(firstimg[1]),2}(undef, s)
    lj .= RGB{N0f8}(1.0, 1.0, 1.0)

    encoder = prepareencoder(lj, framerate=framerate,
                            AVCodecContextProperties=props, codec_name="libx264", )
    
    io = Base.open(tmp_stream, "w")
    @showprogress "Encoding video frames.." for i in 1:length(imgnames)
        lj[1:l,1:w] .= load(imgnames[i], ) #  view = false
        appendencode!(encoder, io, lj, i)
    end
    # @show "1"
    finishencode!(encoder, io)
    close(io) 
    # (tmp_stream, tmp_file, framerate) = ("/Users/t/.julia/dev/HTec/pngs2moive_DIodaQck.stream", "/Users/t/.julia/dev/HTec/pngs2moive_DIodaQck.mp4", 39)

    # @show tmp_stream, tmp_file, framerate
    mux(tmp_stream, filename, framerate;deletestream=true) # Multiplexes the stream into a video container
    
    # mv(tmp_file, filename)
    filename

end

By doing this, I need to think of all the detailed information, such as I need to place the title between colorbar and axis (so the differences of title wouldn't change the size of each figure.). And also it would be very slow if the figures are large... So I would like to try other ways. I will try to figure out how to use movie~

BTW, the SQLite_jll has been updated, and the problem related to this is solved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants