strange -fPIC compilation error
Charles Hixson via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Oct 31 09:26:45 PDT 2016
On 10/30/2016 11:34 PM, Daniel Kozak via Digitalmars-d-learn wrote:
> Dne 31.10.2016 v 02:30 Charles Hixson via Digitalmars-d-learn napsal(a):
>
>>
>> Well, that certainly changed the error messages. With
>> dmd -defaultlib=/usr/lib/x86_64-linux-gnu/libphobos2.so test.d
>> I get:
>> /usr/include/dmd/druntime/import/core/stdc/stdio.d(1121): Error:
>> found 'nothrow' when expecting '{'
>> /usr/include/dmd/druntime/import/core/stdc/stdio.d(1123): Error:
>> mismatched number of curly brackets
>> /usr/include/dmd/druntime/import/core/stdc/stdio.d(1124): Error:
>> mismatched number of curly brackets
>> /usr/include/dmd/druntime/import/core/stdc/stdio.d(1125): Error:
>> mismatched number of curly brackets
>> /usr/include/dmd/druntime/import/core/stdc/stdio.d(1126): Error:
>> mismatched number of curly brackets
>> /usr/include/dmd/druntime/import/core/stdc/stdio.d(1127): Error:
>> mismatched number of curly brackets
>> /usr/include/dmd/druntime/import/core/stdc/stdio.d(1128): Error:
>> mismatched number of curly brackets
>> /usr/include/dmd/druntime/import/core/stdc/stdio.d(1129): Error:
>> mismatched number of curly brackets
>> /usr/include/dmd/druntime/import/core/stdc/stdio.d(1133): Error: asm
>> statements must end in ';'
>> /usr/include/dmd/druntime/import/core/stdc/stdio.d(1136): Error:
>> found 'private' instead of statement
>> /usr/include/dmd/druntime/import/core/stdc/stdio.d(1146): Error: no
>> identifier for declarator add
>> /usr/include/dmd/druntime/import/core/stdc/stdio.d(1149): Error: no
>> identifier for declarator usDone
>> /usr/include/dmd/druntime/import/core/stdc/stdio.d(1149): Error:
>> Declaration expected, not ':'
>> /usr/include/dmd/druntime/import/core/stdc/stdio.d(1157): Error:
>> Declaration expected, not '('
>> /usr/include/dmd/druntime/import/core/stdc/stdio.d(1159): Error:
>> Declaration expected, not 'foreach'
>> /usr/include/dmd/druntime/import/core/stdc/stdio.d(1159): Error:
>> Declaration expected, not '0'
>> /usr/include/dmd/druntime/import/core/stdc/stdio.d(1164): Error: no
>> identifier for declarator __fhnd_info[fd]
>> /usr/include/dmd/druntime/import/core/stdc/stdio.d(1164): Error:
>> Declaration expected, not '='
>> /usr/include/dmd/druntime/import/core/stdc/stdio.d(1165): Error:
>> Declaration expected, not 'return'
>> /usr/include/dmd/druntime/import/core/stdc/stdio.d(1167): Error:
>> unrecognized declaration
>> /usr/include/dmd/phobos/std/typecons.d(1124): Error: semicolon
>> expected following function declaration
>>
> This seems to be problem with your installation, you probably have
> diferen version of dmd compiler and phobos library. So you should
> uninstall all your dmd packages and make sure there is no
> /usr/include/dmd left in your system. And instal dmd only from one
> source (d-apt idealy).
>
I've done that 2 or 3 times. If that's the problem, then there are
different versions stored in the repository. Since I'm on debian
testing I'd been assuming that there'd been some system change since I'd
last used the compiler, and the debs weren't yet up to date. The only
updates to my system prior to the compiler breaking HAD been via
apt-get. Since then I've used dpkg remove and install a couple of times
to try other versions of dmd with no benefit.
Currently dmd-bin version 2.071.2-0
libphobos 2.071.2-0
libphobos 2.071.2-0
so they're LISTED as being the same version. And dmd.conf was installed
by the deb, and is (eliminating the comments):
[Environment32]
DFLAGS=-I/usr/include/dmd/phobos -I/usr/include/dmd/druntime/import
-L-L/usr/lib/i386-linux-gnu -L--export-dynamic
[Environment64]
DFLAGS=-I/usr/include/dmd/phobos -I/usr/include/dmd/druntime/import
-L-L/usr/lib/x86_64-linux-gnu -L--export-dynamic
But somewhere during the process (which included the nightly system
update) the error messages changed, and now:
dmd test.d
yields:
/usr/include/dmd/druntime/import/core/stdc/stdio.d(1121): Error: found
'nothrow' when expecting '{'
/usr/include/dmd/druntime/import/core/stdc/stdio.d(1123): Error:
mismatched number of curly brackets
...
/usr/include/dmd/druntime/import/core/stdc/stdio.d(1167): Error:
unrecognized declaration
/usr/include/dmd/phobos/std/typecons.d(1124): Error: semicolon expected
following function declaration
More information about the Digitalmars-d-learn
mailing list