Skip to content

Build issues #3

Description

@ktm5j

Hi! Sorry to open a new issue before following up on the first one, but I'm having trouble building my project.

I've been using the ~master branch of this repo because of features that are missing from v0.0.1. But I've just noticed that d++ is outputting some error text into source/symmetry/api/libzfs_core.d that probably shouldn't be there.

I encountered this issue while trying to build under Ubuntu 19.04. Originally I couldn't build at all because this error text was placed into a code block. I've been missing this when building under Voidlinux because the text was placed into a comment block. Here's what I'm seeing:

string[string] zfsInheritProperties(string name, string[string] args)
{
 return zfsIoctl(ZFS_IOC_SNAPSHOT_LIST_NEXT,name,args);
}

@SILdoc(`Create a ZFS filesystem or a ZFS volume (zvol)                                                                    
Params:                                                                                                                    
 string name - name of the dataset to be created                                                                           
 DataSetType datasetType - dataset type (either zfs for a filesystem or zvol for a volume                                  
 string[string] propertiessource/symmetry/api/libzfs_core.d.tmp:9602:67: warning: missing terminating ' character          
 9602 |     NameTooLong: if the dataset name is too longor  if the dataset's origin has a snapshot that, if transferred to\
 the dataset, would get a too long name.                                                                                   
      |                                                                   ^                                                
source/symmetry/api/libzfs_core.d.tmp:9605:98: warning: missing terminating ' character                                    
 9605 |     SnapshotExists: if the dataset already has a snapshot with the same name as one of the origin's snapshots.     
      |                                                                                                  ^                 
source/symmetry/api/libzfs_core.d.tmp:9625:38: warning: missing terminating ' character                                    
 9625 |     FilesystemNotFound: if the target's parent does not exist.                                                     
      |                                      ^                                                                             
 - a dictionary od ZFS dataset property name-value pairs                                                                   
 ubyte[] encryptionKey - dataset encryption key data                                                                       
    

I think the difference in where the error text is placed has to do with the version of gcc that d++ was built with. I think the version of llvm/clang also has some impact, but I haven't been able to determine any pattern. However I'm more sure about gcc-7 vs gcc-8 being a factor.

It looks like the real issue here is in d++ encountering errors while your preGenerateCommands are being run. There's some place in libzfs_core.dpp that's being interpreted as code instead of a comment.

If you know of a quick way to fix this I would be eternally grateful! Otherwise I'll see if I can find the root of the problem, but it will probably take me a while

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions