www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.ldc - please help with me to cherry-pick LDC IOS arch and target support.

reply Newbie2019 <newbie2019 gmail.com> writes:
https://github.com/ldc-developers/ldc/issues/1081

Is any one can suggestion the working step?

the ldc source code change too much, I dont know how to fix all 
this errors.

here is a commit list by Dan Olson from 
https://github.com/smolt/ldc/commits/ios:

a0201e4c - Dan Olson - 2017-01-22 08:45:28 -0800 - Update phobos 
submodule
1df9b441 - Dan Olson - 2017-01-22 08:35:18 -0800 - Disable  fake 
bitcode generation
d7dbcd48 - Dan Olson - 2017-01-22 08:32:32 -0800 - Support cmake 
3.7.1
ef9ba25c - Dan Olson - 2017-01-22 08:22:41 -0800 - Make iOS arm 
abi use byval alignment
73d96121 - Dan Olson - 2017-01-21 18:12:50 -0800 - Fix iOS arm abi
4c8053fc - Dan Olson - 2017-01-21 15:08:49 -0800 - Fix iOS arm64 
abi, remove byval attribute use
deb3847f - Dan Olson - 2016-04-19 05:16:38 +0000 - ARM AAPCS: 
struct rewrite with 8-byte alignment
7b7d9adb - Dan Olson - 2016-04-17 10:45:36 -0700 - dmd-testsuite 
with ARM happy constfold
ae99d9c7 - Dan Olson - 2016-03-07 16:59:13 +0000 - Support ARM 
AAPCS style va_list for C++ mangling
7cba1a45 - Dan Olson - 2016-02-25 19:52:23 +0000 - Fix non-x86 
__traits compiles for dmd inline asm
51074b0c - Dan Olson - 2016-02-25 19:29:14 +0000 - Zero extend 
char and wchar
ad1bb14b - Dan Olson - 2016-02-25 19:17:02 +0000 - ARM: 
Re-reverse parameter order for extern(D)
9751f3f2 - Dan Olson - 2016-02-25 19:11:41 +0000 - ARM: Use byval 
attr for types > 64-bytes
13cef8a9 - Dan Olson - 2016-02-06 01:22:01 -0800 - Override LLVM 
default relocation model for ARM
b9b4564d - Dan Olson - 2016-02-05 09:04:09 -0800 - Implement ARM 
AAPCS ABI
0b63c58a - Dan Olson - 2016-01-20 22:22:47 -0800 - cmake: Detect 
if llvm assertions enabled
f4125943 - Dan Olson - 2016-01-17 12:26:02 -0800 - Update 

963a5f4c - Dan Olson - 2016-01-09 13:57:10 -0800 - Create empty 
embedded bitcode sections
818d760f - Dan Olson - 2016-01-06 21:06:30 -0800 - Update 

14c06436 - Dan Olson - 2015-12-23 12:46:35 -0800 - Re-enable 
core.internal.convert unit tests
a77354b3 - Dan Olson - 2015-12-20 23:53:55 -0800 - Update phobos 
submodule
5db1db9c - Dan Olson - 2015-12-20 23:34:29 -0800 - Update 
druntime submodule
68ebcbbb - Dan Olson - 2015-12-20 17:33:13 -0800 - WIP - WatchOS 
exceptions need frame pointer
153a6232 - Dan Olson - 2015-12-20 17:23:37 -0800 - Initial 
support for TVOS and WatchOS
bb378f7c - Dan Olson - 2015-12-16 00:03:05 -0800 - Define 
HAVE_UNISTD_H for zlib
dafbfb29 - Dan Olson - 2015-12-02 07:15:51 -0800 - Make versions 
OSX and iOS exclusive
49ba2910 - Dan Olson - 2015-11-12 10:52:05 -0800 - OS X - default 
OS to macosx instead of darwin
6df2b997 - Dan Olson - 2015-11-07 22:55:45 -0800 - clang-format 
iOS changes
f1e18acd - Dan Olson - 2015-11-07 16:59:59 -0800 - Update phobos 
submodule with fixed unittests
1d66334b - Dan Olson - 2015-11-03 08:46:37 -0800 - Start using 
term iOS instead of iPhone OS
3a8e467b - Dan Olson - 2015-10-30 23:02:39 -0700 - Cleanup
f6bc885d - Dan Olson - 2015-10-30 22:38:57 -0700 - iOS arm64 - 
avoid float vararg promotion
94debcc8 - Dan Olson - 2015-10-21 21:12:16 -0700 - Add versions 
iOS and Darwin
0826f926 - Dan Olson - 2015-10-21 20:30:54 -0700 - iOS ARM - 
extern(C) non-POD struct returns
dfae2e09 - Dan Olson - 2015-10-21 19:21:19 -0700 - OS X x86 - 
extern(C) non-POD struct returns
3182b05a - Dan Olson - 2015-10-04 23:30:07 -0700 - iOS arm64 - 
complete HFA arg/return value rewrite
9b328d16 - Dan Olson - 2015-09-30 21:26:14 -0700 - iOS arm64 - 
rewrite HFA arg, rewrite variadic args
2091e237 - Dan Olson - 2015-09-30 21:22:41 -0700 - iOS ARM - also 
rewrite variadic args
698689e0 - Dan Olson - 2015-09-27 09:38:11 -0700 - iOS arm64 - C 
ABI struct and HFA rewrites
45f53d1e - Dan Olson - 2015-09-18 09:42:21 -0700 - Update 
druntime/phobos submodules
5d6acfbc - Dan Olson - 2015-09-15 08:13:43 -0700 - iOS ARM - 
workaround unaligned load of sarray
d7059476 - Dan Olson - 2015-09-14 09:27:05 -0700 - iOS arm64 - 
add druntime/phobos support
741bf9be - Dan Olson - 2015-09-14 00:37:34 -0700 - Remove unused 
method in abi-aarch64
81834cb7 - Dan Olson - 2015-09-14 00:35:27 -0700 - Add missing 
arg to _d_arraycatnT declaration
3ff30190 - Dan Olson - 2015-09-14 00:31:47 -0700 - Some file 
reorg of iOS ABI files - part2
fdc11a64 - Dan Olson - 2015-09-14 00:29:55 -0700 - Some file 
reorg of iOS ABI files
5aa8ccf7 - Dan Olson - 2015-09-14 00:27:06 -0700 - iOS arm64 ABI 
added
dcb95be0 - Dan Olson - 2015-09-07 12:41:14 -0700 - iOS - Update 
for callingConv change
0bcb802a - Dan Olson - 2015-09-07 10:07:58 -0700 - OS X x86 ABI - 
fix struct return
f19b1a95 - Dan Olson - 2015-09-07 10:06:11 -0700 - OS X - Fix 
MULTILIB test_runner linking
f713ee56 - Dan Olson - 2015-08-29 11:56:00 -0700 - OS X x86 ABI - 
fix struct return
2488032b - Dan Olson - 2015-07-30 09:50:33 -0700 - iOS ARM - 
Follow C ABI for passing structs
e6a98c5a - Dan Olson - 2015-07-27 22:15:55 -0700 - iOS ARM - 
Follow ABI for integer-like struct return
542768cd - Dan Olson - 2015-07-24 23:59:38 -0700 - cmake 
-DWITH_CURL to include curl modules in phobos
3a90a2c3 - Dan Olson - 2015-07-23 01:05:32 -0700 - Update 
druntime submodule
549f5d04 - Dan Olson - 2015-07-23 00:30:21 -0700 - Build unittest 
for each iOS arch, remove curl
8d2982a9 - Dan Olson - 2015-07-20 23:49:35 -0700 - Match new 
TargetABI callingConv()
1acd6a1c - Dan Olson - 2015-07-19 16:58:20 -0700 - Update 
druntime/phobos with unittest fixes
30fbaa6d - Dan Olson - 2015-07-16 22:16:36 -0700 - WIP MacOSX - 
dead_strip experiment
358d9b6e - Dan Olson - 2015-07-16 21:45:37 -0700 - WIP build 
unittests foreach  IPHONEOS_ARCH
81a43968 - Dan Olson - 2015-07-16 21:44:57 -0700 - WIP iOS arm64
96bf3d38 - Dan Olson - 2015-07-07 00:26:35 -0700 - iOS - update 
druntime to avoid dyld private APIs
7a0b7709 - Dan Olson - 2015-07-05 18:35:19 -0700 - iOS - add 
armv7s architecture
be94f966 - Dan Olson - 2015-07-04 11:31:24 -0700 - Update 
druntime/phobos submodules for iOS Sim
730be86d - Dan Olson - 2015-07-04 11:27:55 -0700 - iOS - 
preliminary universal lib support
3670da74 - Dan Olson - 2015-07-04 10:11:16 -0700 - ARM - consider 
thumb too for default cpu
08fafa20 - Dan Olson - 2015-07-04 10:02:45 -0700 - iOS - Disable 
neon when optimizing
6496aeb2 - Dan Olson - 2015-07-04 09:59:02 -0700 - iOS Simulator 
- iOS default relocation is PIC
36d514c9 - Dan Olson - 2015-06-21 23:49:40 -0700 - Update 
druntime and phobos submodules
98109d9e - Dan Olson - 2015-06-02 16:34:35 -0700 - Cross compile 
from OSX to target's real type
1878e43c - Dan Olson - 2015-05-30 08:40:40 -0700 - Support 
i386-apple-ios (IPhoneSimulator)
1bd2fbcb - Dan Olson - 2015-05-15 23:26:18 -0700 - Change iOS 
extern(D) ABI from fastcc to ccc
3e535bd8 - Dan Olson - 2015-05-15 23:25:12 -0700 - Fix type-oh in 
help string
d25cec11 - Dan Olson - 2015-05-15 23:25:12 -0700 - Work toward 
getting the iOS ABI correct
1c2cf940 - Dan Olson - 2015-05-15 23:25:12 -0700 - ABI for iOS 
that passes structs as values
b034a111 - Dan Olson - 2015-05-15 23:20:39 -0700 - Add version 
IPhoneOS
5a57557e - Dan Olson - 2015-05-15 23:17:01 -0700 - real == double 
conditional on USE_REAL64
92e24ff1 - Dan Olson - 2015-05-15 23:17:00 -0700 - Fix -vtls help 
string
2965d94b - Dan Olson - 2015-05-15 23:15:41 -0700 - Implement 
-vtls in ldc
922a80f9 - Dan Olson - 2015-05-15 23:10:10 -0700 - new option 
-disable-tls
ef096bb8 - Dan Olson - 2015-05-15 22:59:45 -0700 - switch 
submodule phobos to smolt fork for iOS and update to latest 
druntime
5d8b35ed - Dan Olson - 2015-05-15 22:58:07 -0700 - switch 
submodule druntime to smolt fork for ios
85569bfb - Dan Olson - 2015-05-15 22:58:07 -0700 - Hard code in 
so real == double.  This is an issue when cross compiling since 
dmd uses the host C libs to determine the properties of type 
real.  This change breaks ldc for native compiles, will have to 
come up with better solution.
3c4c4410 - Dan Olson - 2015-05-15 22:58:07 -0700 - Some useful 
notes in comments
e2bcfacc - Dan Olson - 2015-05-15 22:51:45 -0700 - cmake 
TARGET_C_FLAGS added for building target libraries
a7f5ed8a - Dan Olson - 2015-05-15 22:48:44 -0700 - allow ios as 
triple OS
dfbb6cdd - Dan Olson - 2015-05-15 22:48:44 -0700 - disable TLS 
for now
9db58c39 - Dan Olson - 2015-05-15 22:48:44 -0700 - work with 
libc++
08d92ede - Dan Olson - 2015-04-27 00:13:11 -0700 - Update to 

ca2814f0 - Dan Olson - 2015-04-06 22:04:15 -0700 - Update to 

1c9329de - Dan Olson - 2015-04-05 23:53:20 -0700 - Add new dmd 
-verrors option
8246071a - Dan Olson - 2015-03-29 15:48:55 -0700 - index on 
ios-merge-2.067: b266d23 Merge branch 'merge-2.067' into 
ios-merge-2.067
17c99659 - Dan Olson - 2015-03-28 11:44:26 -0700 - Use old 
builtinTypeInfo logic for type class
1d054009 - Dan Olson - 2015-03-22 22:30:13 -0700 - Add new phobos 
subdirs
a0e7ebfc - Dan Olson - 2015-03-22 22:22:29 -0700 - Add new phobos 
subdirs
d2f49bc3 - Dan Olson - 2015-03-22 16:44:12 -0700 - Change iOS 
extern(D) ABI from fastcc to ccc
b2d51d65 - Dan Olson - 2015-03-21 18:25:20 +0100 - Fix cmake bug 
when ldc is a submodule
73df563a - Dan Olson - 2015-03-09 00:13:54 -0700 - Fix cmake bug 
when ldc is a submodule
af9d1a8c - Dan Olson - 2015-03-09 00:11:05 -0700 - Update 
druntime submodule
0be5ead4 - Dan Olson - 2015-03-09 00:11:05 -0700 - Fix cmake bug 
when ldc is a submodule
ecd68430 - Dan Olson - 2015-03-01 00:29:32 -0800 - Stray tab 
cleanup
f554c322 - Dan Olson - 2015-02-28 23:57:38 -0800 - Lookup default 
float-abi for thumb same as arm
3c9da62e - Dan Olson - 2015-02-28 23:53:30 -0800 - Set version 
ARM_SoftFP
b5b7e287 - Dan Olson - 2015-02-10 19:06:32 -0800 - Update 
submodules with latest changes
6e7c9cd5 - Dan Olson - 2015-02-10 19:05:58 -0800 - Fix type-oh in 
help string
e0cf8e85 - Dan Olson - 2015-02-10 19:03:30 -0800 - Lookup default 
float-abi for thumb same as arm
cd3a8c00 - Dan Olson - 2015-02-10 19:02:37 -0800 - Work toward 
getting the iOS ABI correct
2bc41698 - Dan Olson - 2015-02-10 18:56:37 -0800 - ABI for iOS 
that passes structs as values
526692e9 - Dan Olson - 2015-02-04 15:50:20 -0800 - Add version 
IPhoneOS
5a19080e - Dan Olson - 2015-01-28 00:38:02 -0800 - Set version 
ARM_SoftFP
2f273bdc - Dan Olson - 2015-01-23 08:21:43 -0800 - real == double 
conditional on USE_REAL64
40a2e7c6 - Dan Olson - 2015-01-15 07:54:41 -0800 - Fix -vtls help 
string
c3167169 - Dan Olson - 2015-01-12 08:17:10 -0800 - Update phobos 
submodule to ios-release-0.15.0 tag
7a611545 - Dan Olson - 2015-01-04 19:51:43 -0800 - Update 
druntime and phobos submodules commits
8b0bd382 - Dan Olson - 2015-01-02 12:18:36 -0800 - Implement 
-vtls in ldc
762c01d9 - Dan Olson - 2015-01-02 12:09:03 -0800 - new option 
-disable-tls
c66fbbe0 - Dan Olson - 2014-05-04 21:39:34 -0700 - When calling a 
C variadic (...), pass structs by value instead of reference.  
This will match with C calling convention.
54d2f3f2 - Dan Olson - 2014-03-27 01:05:47 -0700 - switch 
submodule phobos to smolt fork for iOS and update to latest 
druntime
872d0674 - Dan Olson - 2014-02-21 00:54:28 -0800 - update 
druntime with work exception handling for iOS
06b2b1f9 - Dan Olson - 2014-02-12 20:04:26 -0800 - switch 
submodule druntime to smolt fork for ios
ed74a7c9 - Dan Olson - 2014-02-12 08:07:01 -0800 - Hard code in 
so real == double.  This is an issue when cross compiling since 
dmd uses the host C libs to determine the properties of type 
real.  This change breaks ldc for native compiles, will have to 
come up with better solution.
48772743 - Dan Olson - 2014-02-09 13:49:04 -0800 - Some useful 
notes in comments
552f31c8 - Dan Olson - 2014-02-03 22:42:21 -0800 - switch 
druntime to ios dev branch
4447c660 - Dan Olson - 2014-02-02 00:18:47 -0800 - cmake 
TARGET_C_FLAGS added for building target libraries
e2b53f47 - Dan Olson - 2014-02-02 00:16:31 -0800 - allow ios as 
triple OS
d41097bf - Dan Olson - 2014-02-02 00:15:06 -0800 - disable TLS 
for now
591b0bbc - Dan Olson - 2014-02-02 00:13:54 -0800 - work with 
libc++


please do suggestion.
Oct 18 2019
parent reply Rainer Schuetze <r.sagitario gmx.de> writes:
On 19/10/2019 07:52, Newbie2019 wrote:
 https://github.com/ldc-developers/ldc/issues/1081
 
 Is any one can suggestion the working step?
 
 the ldc source code change too much, I dont know how to fix all this
 errors.
 
 here is a commit list by Dan Olson from
 https://github.com/smolt/ldc/commits/ios:
 
 a0201e4c - Dan Olson - 2017-01-22 08:45:28 -0800 - Update phobos submodule
...
 591b0bbc - Dan Olson - 2014-02-02 00:13:54 -0800 - work with libc++
 
 
 please do suggestion.
 
I'd recommend just comparing the last state of the ios branch with the base commit at the time of Dan's last merge, i.e. 9e662f2334fd9b8eab927e0e1a2bf450de8c1392. The diff doesn't look as overwhelming as the commit list. Then reapply the changes to the current LDC code one by one by finding the respective code locations.
Oct 20 2019
parent Newbie2019 <newbie2019 gmail.com> writes:
On Sunday, 20 October 2019 at 07:11:56 UTC, Rainer Schuetze wrote:
 I'd recommend just comparing the last state of the ios branch 
 with the base commit at the time of Dan's last merge, i.e. 
 9e662f2334fd9b8eab927e0e1a2bf450de8c1392. The diff doesn't look 
 as overwhelming as the commit list.

 Then reapply the changes to the current LDC code one by one by 
 finding the respective code locations.
Thanks for the explain.
Oct 21 2019