[swift-corelibs-dev] Unresolved enumeration symbols

Tony Parker anthony.parker at apple.com
Sun Dec 13 11:42:11 CST 2015


I’m curious why it’s these particular enums are different. If you try to build a sample app that actually uses these enum values, does it fail to link?

- Tony

> On Dec 13, 2015, at 9:19 AM, Joseph Bell <joe at iachieved.it> wrote:
> 
> Tony, all:
> 
> I went back to basics and used the following to build:
> 
> ./swift/utils/build-script -R --xctest --foundation -t
> 
> Unfortunately I get the same result - missing symbols for enumerations in libFoundation.so.  Once again I'm building against the master branch for all repositories.
> 
> I'm going to build the debug configuration now and see - I would be curious to know if anyone can reproduce this, I'd be happy to write up a Dockerfile or something to at least have someone confirm the reproducibility.
> 
> Joe
> 
> 
> On Sat, Dec 12, 2015 at 10:27 PM, Joseph Bell <joe at iachieved.it <mailto:joe at iachieved.it>> wrote:
> Installing Ubuntu 15.10 on a VM, bringing in all of the prerequisites, I get the same result.  The build completes successfully but libFoundation.so is not including the enumerations in NSDateFormatter.
> 
> public enum NSDateFormatterStyle : UInt {
>     case NoStyle
>     case ShortStyle
>     case MediumStyle
>     case LongStyle
>     case FullStyle
> }
> For grins, I searched through libFoundation.so with nm -D looking for another enum, say one of the NSNumber format styles:
> 
> $ nm -D libFoundation.so |grep CurrencyStyle
> $ nm -D libFoundation.so |grep PercentStyle
> 
> No dice, Chicago.
> 
> I can't say all enumerations are missing but these definitely are.
> 
> I've also posted what I use to prep and build at https://github.com/iachievedit/package-swift <https://github.com/iachievedit/package-swift>; hoping there isn't an embarrassing oversight.
> 
> Joe
> 
> 
> On Sat, Dec 12, 2015 at 8:00 PM, Joseph Bell <joe at iachieved.it <mailto:joe at iachieved.it>> wrote:
> Information about the system I'm building with, will note it doesn't have anything else "special" i.e., no 4.x kernel or non-standard libc.  It is really interesting, everything compiles okay, no errors thrown, etc.  I'm going to try a build on a 15.10 VM as well to see if I can reproduce. 
> 
> uname -a
> Linux darthvader 3.19.0-39-generic #44~14.04.1-Ubuntu SMP Wed Dec 2 10:00:35 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
> 
> lsb_release -a
> No LSB modules are available.
> Distributor ID:	Ubuntu
> Description:	Ubuntu 14.04.3 LTS
> Release:	14.04
> Codename:	trusty
> 
> clang --version
> Ubuntu clang version 3.6.0-2ubuntu1~trusty1 (tags/RELEASE_360/final) (based on LLVM 3.6.0)
> Target: x86_64-pc-linux-gnu
> Thread model: posix
> 
> cat /proc/cpuinfo
> processor       : 0
> vendor_id       : AuthenticAMD
> cpu family      : 21
> model           : 1
> model name      : AMD FX(tm)-8120 Eight-Core Processor
> stepping        : 2
> microcode       : 0x6000626
> cpu MHz         : 1400.000
> cache size      : 2048 KB
> physical id     : 0
> siblings        : 8
> core id         : 0
> cpu cores       : 4
> apicid          : 16
> initial apicid  : 0
> fpu             : yes
> fpu_exception   : yes
> cpuid level     : 13
> wp              : yes
> flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse3
> 6 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc
>  rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 cx16 sse4_
> 1 sse4_2 popcnt aes xsave avx lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misali
> gnsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 nodeid_msr topoext perfctr_core per
> fctr_nb arat cpb hw_pstate npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid
> decodeassists pausefilter pfthreshold vmmcall
> bugs            : fxsave_leak
> bogomips        : 6228.24
> TLB size        : 1536 4K pages
> clflush size    : 64
> cache_alignment : 64
> address sizes   : 48 bits physical, 48 bits virtual
> power management: ts ttp tm 100mhzsteps hwpstate cpb
> 
> 
> 
> On Sat, Dec 12, 2015 at 7:24 PM, Joe Bell <joe at iachieved.it <mailto:joe at iachieved.it>> wrote:
> Tony, yes, I'm building on an Ubuntu 14.04 system.  I can provide any uname or kernel information if you need.
> 
> Joe
> 
> On Dec 12, 2015, at 7:17 PM, Tony Parker <anthony.parker at apple.com <mailto:anthony.parker at apple.com>> wrote:
> 
>> Hi Joe,
>> 
>> I see you used the preset for linux, but I just wanted to double-check that you are indeed building on Linux.
>> 
>> - Tony
>> 
>>> On Dec 12, 2015, at 3:48 PM, Joseph Bell via swift-corelibs-dev <swift-corelibs-dev at swift.org <mailto:swift-corelibs-dev at swift.org>> wrote:
>>> 
>>> Howdy.
>>> 
>>> I'm using the basic build instructions (checking out swift, llvm, clang, etc.) and can successfully build a packaged release with 
>>> 
>>> ./swift/utils/build-script --preset=buildbot_linux_1404 install_destdir=${INSTALL_DIR} i
>>> nstallable_package=${PACKAGE}
>>> 
>>> However, the resulting build output for Foundation is missing enumeration types, and I noticed it in particular in the NSDateFormatter class:
>>> 
>>> ➜  Foundation git:(master) ✗ nm NSDateFormatter.swift.o|grep Medium
>>> 
>>> 
>>> Of course this results in the symbols not being included in libFoundation.so
>>> ➜  Foundation git:(master) ✗ nm -D libFoundation.so |grep Medium
>>> 
>>> Looking at my build from source I am missing about 200K of symbols that the SNAPSHOT build is including:
>>> 
>>>   Foundation git:(master) ✗ nm -D /opt/apple/swift-2.2-SNAPSHOT-2015-12-10-a-ubuntu14.04/usr/lib/swift/linux/libFoundation.so|grep Medium
>>> 000000000034ab40 T _TFO10Foundation20NSDateFormatterStyle11MediumStyleFMS0_S0_
>>> 00000000003944e0 T _TFO10Foundation21NSFormattingUnitStyle6MediumFMS0_S0_
>>> 000000000034b330 T _TFO10Foundation28NSDateIntervalFormatterStyle11MediumStyleFMS0_S0_
>>> 00000000003f5820 T _TFO10Foundation36NSPersonNameComponentsFormatterStyle6MediumFMS0_S0_
>>> 
>>> Thanks for any thoughts,
>>> Joe
>>> 
>>> PS - I am using the master branch across all repositories.
>>> 
>>>  _______________________________________________
>>> swift-corelibs-dev mailing list
>>> swift-corelibs-dev at swift.org <mailto:swift-corelibs-dev at swift.org>
>>> https://lists.swift.org/mailman/listinfo/swift-corelibs-dev <https://lists.swift.org/mailman/listinfo/swift-corelibs-dev>
>> 
> 
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-corelibs-dev/attachments/20151213/2b08e2a4/attachment.html>


More information about the swift-corelibs-dev mailing list