Re: Getting Citus into (Debian) PGDG

Christoph Berg <myon@debian.org>

From: Christoph Berg <myon@debian.org>
To: Jason Petersen <jason@citusdata.com>
Cc: pgsql-pkg-debian@postgresql.org
Date: 2016-04-26T15:13:39Z
Lists: pgsql-hackers
Re: Jason Petersen 2016-03-26 <980D4281-A01F-4F5D-9874-FFED701F403F@citusdata.com>
> > On Mar 25, 2016, at 4:43 PM, Jason Petersen <jason@citusdata.com> wrote:
> > 
> > though the most interesting bit is the debian directory <https://github.com/citusdata/packaging/tree/525a46c8b6ac5ab7c52015f8b74bee254559de40/debian>
> 
> And of course I provided a link to a stale debian directory commit. Latest is here: https://github.com/citusdata/packaging/tree/8cc20250b8df0b0d8cfb95f1a68145e5ef11a205/debian <https://github.com/citusdata/packaging/tree/8cc20250b8df0b0d8cfb95f1a68145e5ef11a205/debian>

Hi Jason,

to continue here after the discussion on IRC, citus was just accepted
into Debian unstable. In other words, welcome to the wonderful world
of interesting architectures with arcane features :)

https://buildd.debian.org/status/package.php?p=citus

That said, there's a build failure on s390x:

https://buildd.debian.org/status/fetch.php?pkg=citus&arch=s390x&ver=5.0.1-1&stamp=1461670278

gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -I/usr/include/mit-krb5 -fPIC -pie  -fpic -g -O2 -fstack-protector-strong -Wformat -Werror=format-security  -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-missing-field-initializers -Wno-clobbered -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wmissing-declarations -Wmissing-prototypes -shared -o citus.so ./shared_library_init.o commands/create_distributed_table.o commands/transmit.o executor/multi_utility.o executor/multi_router_executor.o executor/multi_server_executor.o executor/multi_real_time_executor.o executor/multi_executor.o executor/multi_task_tracker_executor.o executor/multi_client_executor.o master/master_stage_protocol.o master/master_metadata_utility.o master/master_delete_protocol.o master/master_repair_shards.o master/master_create_shards.o master/worker_node_manager.o master/master_node_protocol.o planner/multi_physical_planner.o planner/multi_master_planner.o planner/multi_explain.o planner/multi_logical_planner.o planner/multi_planner.o planner/multi_join_order.o planner/modify_planner.o planner/multi_logical_optimizer.o relay/relay_event_utility.o test/generate_ddl_commands.o test/connection_utils.o test/prune_shard_list.o test/distribution_metadata.o test/test_helper_functions.o test/connection_cache.o test/fake_fdw.o test/create_shards.o utils/listutils.o utils/citus_readfuncs_94.o utils/ruleutils_94.o utils/multi_resowner.o utils/resource_lock.o utils/citus_outfuncs.o utils/metadata_cache.o utils/connection_cache.o utils/citus_read.o utils/citus_ruleutils.o utils/citus_nodefuncs.o utils/citus_readfuncs_95.o utils/ruleutils_95.o worker/worker_partition_protocol.o worker/task_tracker_protocol.o worker/task_tracker.o worker/worker_file_access_protocol.o worker/worker_data_fetch_protocol.o worker/worker_merge_protocol.o -L/usr/lib/s390x-linux-gnu -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -L/usr/lib/mit-krb5 -L/usr/lib/s390x-linux-gnu/mit-krb5  -Wl,--as-needed -Wl,-z,relro  -L/usr/lib/s390x-linux-gnu -lpq 
utils/ruleutils_95.o: In function `simple_quote_literal':
/«PKGBUILDDIR»/src/backend/distributed/utils/ruleutils_95.c:6114:(.text+0x596): relocation truncated to fit: R_390_GOT12 against undefined symbol `standard_conforming_strings'

I've had that problem before, but forgot most of it. I think the
problem is that "-fPIC -pie  -fpic" isn't consistent and should
probably be "-fPIC -PIE", but I might be totally wrong. (I'll try to
dig up some docs.)

Christoph


Commits

  1. Always use -fPIC, not -fpic, when building shared libraries with gcc.